nginx反向代理模块配置详解_nginx反向代理模块

文字:

proxy模块

HTTP反向代理处理流程

proxy模块

功能:对上游服务器使用http/https协议进行反向代理。

语法:proxy_pass URL;

上下文:if,if in location

URL规则

必须以http或者https开头,接下来是域名|IP地址|Unix socket|upstream的名字。

域名和IP地址后边可以加端口。

最后可以带上可选的URI

URL参数中带有URI会导致法向上游的URL不同

不携带URI,则将客户端请求中的URL直接发送给上游服务器。

携带URI,则对用户请求中的URL做如下操作:

将location中匹配上的一段替换为该URI。

小例子:

upstreamproxyups {

server127.0.0.1:8012 weight=1;

keepalive2;

}

server{

set_real_ip_from  192.168.188.60;

real_ip_headerX-Forwarded-For;

listen8080;

location/a {

proxy_http_version1.1;

proxy_set_headerConnection"";

}

上例中,我配置上游服务器,返回$uri的内容。

上边proxy_pass的配置下:curl 192.168.188.60:8080/a/c,会输出 uri:/a/c,会原封不动地把URI发送给上游服务器。

如果上边第一个proxy_pass的注释打开,注释掉第二条。curl 192.168.188.60:8080/a/c,会输出:uri:/www/c,在location中先进行URI替换,然后再发送给上游服务器。

根据指令修改发往上游的请求

生成发往上游的请求行

proxy_method指令

语法:proxy_method method;

上下文:http,server,location。

作用:设置传给上游服务器的http请求的方法。

proxy_http_version

语法proxy_http_version  1.0|1.1

默认:proxy_http_version  1.0;

如果使用keepalive功能的时候,就必须使用proxy_http_version 1.1。

proxy_pass_requests_headers

作用:是否把用户请求的头部发给上游。如果设置为off,那么就不再把用户请求的header发给上游服务器了。

默认:proxy_pass_requests_headers  on;

proxy_pass_requests_body

作用:是否把用户请求的包体发给上游。

默认:proxy_pass_requests_body  on;

proxy_set_header

默认:proxy_set_header Host  $proxy_host;  proxy_set_header  Connection close;

作用:在上边proxy_pass_requests_headers为on的情况下,我可以自己设置传给上游服务器的header的头部内容。

proxy_set_body

作用:作用:在上边proxy_pass_requests_body为on的情况下,我可以自己设置传给上游服务器的body的内容。

小例子:

反向代理配置

upstreamproxyups {

server127.0.0.1:8012 weight=1;

}

server{

listen8080;

location/a {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值