(1) upstream块
语法:upstream name {...}
配置块:http
(2) server 块
语法:server name [parameters];
配置块:upstream
支持的参数parameters如下:
- weight=number,权重,默认为1;
- max_fails=number,与fail_timeout配合使用,指在fail_timeout时间段内,如果向当前的上游服务器转发次数超过number,则认为在当前fail_timeout时间段内这台上游服务器不可也用。默认为1,如果设置为0,则表示不检查失败次数;
- fail_timeout=time,默认10;
- down,表示所在的上游服务器永久下线,只有在ip_hash配置时才有用;
- backup,使用ip_hash配置项时无效。它表示所在的上游服务器只是备份服务器,只有在所有的非备份上游服务器都失效后,才会向所在的上游服务器转发请求。
(3) ip_hash块
语法:ip_hash;
配置块:upstream
某些场景下,我们可能会希望来自某一个用户的请求始终落到固定的一台上游服务器中。ip_hash首先根据客户端的ip地址计算出一个key,将key按照upstream集群里的上游服务器数量进行取模,然后以取模后的结果把请求转发到相应的上游服务器中。
ip_hash与weight配置不可同时使用。如果upstream集群中有一台上游服务器暂时不可用,不能直接删除该配置,而是要down参数标识,确保转发策略的一惯性。
(1) proxy_pass
语法:proxy_pass URL;
配置块:location、if
URL可以使主机名或ip地址加端口的形式,也可以是UNIX句柄,还可以直接用负载均衡块。
默认情况下,反向代理是不会转发请求中的头部的,如果需要转发,必须加上配置:
(2) proxy_method
语法:proxy_method method;
用于改变请求方法类型。例如 proxy_method POST; 客户端发来的GET请求在转发时方法名会改为POST。
(3) proxy_hide_header
语法:proxy_hide_header the_header;
(4) proxy_pass_header
语法:proxy_pass_header the_header;
(5) proxy_pass_request_body
语法:proxy_pass_request_body on | off;
默认:proxy_pass_request_body on;
(6) proxy_pass_request_headers
语法:proxy_pass_request_headers on | off;
默认:proxy_pass_request_headers on;
(7) proxy_redirect
语法:proxy_redirect [default|off|redirect replacement];
默认:proxy_redirect default;
此配置项的作用是:当上游服务器返回的响应是重定向或刷新请求,该配置可以重设HTTP返回头部中的location或refresh字段。