Nginx常见基础配置---proxy代理模块

98 篇文章 1 订阅
82 篇文章 3 订阅

Nginx常见基础配置—proxy代理模块

proxy代理

Nginx使用 ngx_ http_ proxy_ module来完成对后端服务的代理。这一节,我们将一起来见识 Nginx最流行的 proxy代理功能。

proxy_ pass请求代理规则

语法: proxy_ pass URL;

环境: location、 if in location、 limit_ except

含义:将请求代理到后端服务器,设置后端服务的 IP地址、端口号以及 HTTP/ HTTPS。

示例:将 URI为/ test的请求代理到 127. 0. 0. 1上,端口号为 81,使用 HTTP,代码如下。


在代理过程中, URL的传递会有如下几种变化:


注意:如果 location块配置的 URI使用了正则表达式,那么在使用 proxy_ pass时,就不能将 URI配置到 proxy_ pass指定的后端服务器的最后面了,即禁止使用类似 proxy_ pass http:// 127. 0. 0. 1: 81/ abc/的方式,否则可能会导致一些不可预测的问题出现。

减少后端服务器的网络开销

有很多请求的内容只和 URL有关,即后端服务器不需要读取请求体和请求头,只根据 URL的信息即可生成所需的数据。在这种情况下,可以使用如下两个指令,并将其配置为 off,禁止传输请求体和请求头。

  • proxy_ pass_ request_ body:确定是否向后端服务器发送 HTTP请求体,支持配置的环境有 http、 server、 location。

  • proxy_ pass_ request_ headers:确定是否向后端服务器发送 HTTP请求头,支持的配置的环境有 http、 server、 location。

通过配置以上两个指令,后端服务接收到的流量将会变小。

控制请求头和请求体

在请求被代理到后端服务器时,可以通过下所示的指令去控制请求头和请求体。


注意:在设置 proxy_ set_ header后,下一层级会继承这个请求头的内容。但如果下一层级也配置了 proxy_ set_ header指令,那么当请求到达下一层级时,在上一层级配置的请求头将会被全部清除。

举例如下:


如果要A和AB两个请求头都保留下来,可以用下面的方法:

控制请求和后端服务器的交互时间

控制请求和后端服务器交互时间的指令见下表。

如果使用默认的设置,即 60s,请求可能需要等待很久才会做出下一步反应,而客户端往往不会等待那么久,所以需要合理设置交互时间,并且最好能在超时后做一些合理的措施。
如搭配使用 proxy_ next_ upstream*命令,这将在后面说明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值