Nginx基础⼊门之proxy反向代理常⽤配置项说明
众所周知,nginx是⼀个很优秀的反向代理服务器,它反向代理的性能堪⽐haproxy,在很多应⽤场景中,nginx常常单独作为反向代理server+keepalived的配合构建⾼性能,⾼可⽤集,下⾯我们讲讲nginx配置反向代理时⼀些常⽤配置参数说明,如下:
⼀. nginx反向代理配置项说明
如何设置代理服务器1.1 proxy_pass
语法:proxy_pass URL;
配置块:location、if
此配置项将当前请求反向代理到URL参数指定的服务器上,URL可以是主机名或IP地址加端⼝的形式,例如:
upstream backend {
…
}
proxy_set_header Host $host;
1.2 proxy_method
语法:proxy_method method;
配置块:http、server、location
此配置项表⽰转发时的协议⽅法名。例如设置为
proxy_method POST;
那么客户端发来的GET请求在转发时⽅法名也会改为POST。
1.3 proxy_hide_header
语法:proxy_hide_header the_header;
配置块:http、server、location
Nginx会将上游服务器的响应转发给客户端,但默认不会转发以下HTTP头部字段:Date、Server、X-Pad和X-Accel-*。使⽤
proxy_hide_header后可以任意地指定哪些HTTP头部字段不能被转发。例如:
proxy_hide_header Cache-Control; proxy_hide_header MicrosoftOfficeWebServer;
1.4 proxy_pass_header
语法:proxy_pass_header the_header;
配置块:http、server、location
与proxy_hide_header功能相反,proxy_pass_header会将原来禁⽌转发的header设置为允许转发。例如:
proxy_pass_header X-Accel-Redirect;
1.5 proxy_pass_request_body
语法:proxy_pass_request_body on | off;
默认:proxy_pass_request_body on;
配置块:http、server、location
作⽤为确定是否向上游服务器发送HTTP包体部分。
1.6 proxy_pass_request_headers
语法:proxy_pass_request_headers on | off;
默认:proxy_pass_request_headers on;
配置块:http、server、location
作⽤为确定是否转发HTTP头部。
1.7 proxy_redirect
语法:proxy_redirect [ default|off|redirect replacement ];
默认:proxy_redirect default;
配置块:http、server、location
当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段。
使⽤off参数时,将使location或者refresh字段维持不变。例如:
proxy_redirect off;
使⽤默认的default参数时,会按照proxy_pass配置项和所属的location配置项重组发往客户端的location头部。例如,下⾯两种配置效果是⼀样的:
1.8 proxy_next_upstream
语法:proxy_next_upstream [error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_404 | off ];
默认:proxy_next_upstream error timeout;
配置块:http、server、location
此配置项表⽰当向⼀台上游服务器转发请求出现错误时,继续换⼀台上游服务器处理这个请求。前⾯已经说过,上游服务器⼀旦开始发送应答,Nginx反向代理服务器会⽴刻把应答包转发给客户端。因此,⼀旦Nginx开始向客户端发送响应包,之后的过程中若出现错误也是不允许换下⼀台上游服务器继续处理的。这很好理解,这样才可以更好地保证客户端只收到来⾃⼀个上游服务器的应答。
proxy_next_upstream的参数⽤来说明在哪些情况下会继续选择下⼀台上游服务器转发请求。
error:当向上游服务器发起连接、发送请求、读取响应时出错。
timeout:发送请求或读取响应时发⽣超时。
invalid_header:上游服务器发送的响应是不合法的。
http_500:上游服务器返回的HTTP响应码是500。
http_502:上游服务器返回的HTTP响应码是502。
http_503:上游服务器返回的HTTP响应码是503。
http_504:上游服务器返回的HTTP响应码是504。
http_404:上游服务器返回的HTTP响应码是404。
off:关闭proxy_next_upstream功能—出错就选择另⼀台上游服务器再次转发。
Nginx的反向代理模块还提供了很多种配置,如设置连接的超时时间、临时⽂件如何存储,以及最重要的如何缓存上游服务器响应等功能。这些配置可以通过阅读ngx_http_proxy_module模块的说明了解,只有深⼊地理解,才能实现⼀个⾼性能的反向代理服务器。
上⾯所讲的就是nginx反向代理的⼀些基本配置参数说明,如想要仔细了解关于nginx的反向代理相关设置请访问
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论