13
2019
04

nginx中proxy_pass配置

语法: proxy_pass URL;
默认值:
上下文: locationif in locationlimit_except

设置被代理的服务器的协议和地址,还可以设置可选的URI。

协议是“http”或者“https”。

地址既可以使用域名或者IP地址加端口(可选)的形式来定义:

proxy_pass http://localhost:8000/uri/;

或使用UNIX域套接字路径来定义。该路径接在“unix”字符串后面,两端由冒号所包围,比如:

proxy_pass http://unix:/tmp/backend.socket:/uri/;

如果解析一个域名得到多个地址,所有的地址都会以轮转的方式被使用。当然,也可以使用upstream来定义地址。

请求URI按下面规则传送给后端被代理服务器:

1、如果proxy_pass使用了URI(下面例子中127.0.0.1地址后面部分,包括只有斜杠的情况),请求路径与loction路径的匹配部分将被替换为proxy_pass中定义的URI:

 location /name/ {

     proxy_pass http://127.0.0.1/remote/;

 } 

2、如果proxy_pass没有使用URI,发给被代理服务器的请求路径和客户端发情的请求路径相同,不会被修改。

location /some/path/ {

     proxy_pass http://127.0.0.1;

 } 

特殊情况:

1、location使用正则表达式定义路径。这种情况下,指令不应该带有URI。

2、使用rewrite指令改变了URI,但仍使用相同配置处理请求(break):

location /name/ {

     rewrite    /name/([^/]+) /users?name=$1 break;

     proxy_pass http://127.0.0.1;

 } 

这种情况下,指令设置的URI会被忽略,改变后的URI将被发送给后端服务器。

3、后端服务器的地址,端口和URI中都可以使用变量:

proxy_pass http://$host$uri; 

原文链接:https://www.qiquanji.com/post/7903.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。