1. proxy_pass 指令介绍
该指令属于 http_proxy_module, http_proxy_module 模块可以将请求转发到另一台服务器。
在 nginx 反向代理是,会通过 location 功能匹配指定的 URI,然后把接收到的符合匹配 URI的请求通过 proxy_pass 转移给之前定义好的 upstream 节点池。
2. 使用实例
proxy_pass 的典型使用实例如下
1. 使用 upstream 模块在 nginx 中定义一组或多组节点服务器组
upstream fd02_mc_server { server 10.21.6.4:88081 max_fails=2 fail_timeout=2; }
2. 通过 proxy_pass 代理方式把网站的请求发送到事先定义好的对应 Upstream 组的名字上
location /fd02_mc { proxy_pass http://fd02_mc_server; include proxy.conf; }
注意上面不仅使用了 proxy_pass 指令还包括 include proxy.conf。
这是因为 http_proxy 模块还包括一些选项,这些选项在绝大多数情况下都是必须要设置的。
项目中的 proxy.conf 配置如下
# proxy_set_header 表示设置 http 请求 header 项传给后端的服务器节点 # 下面语句表示当反向代理向下面节点发送请求时,要携带主机头信息 proxy_set_header Host $host; # 该指令指定客户端请求内容的缓冲区大小. # 如果客户端请求内容大于缓冲区,整个请求内容或部分请求内容将被写人临时文件 client_body_buffer_size 128k; # 表示反向代理与后端节点服务器连接的超时时间,单位 S proxy_connect_timeout 30; # 代理后端服务器的数据回传时间,规定时间内传送不完,就会断开连接 proxy_send_timeout 120; # Nginx 从代理的后端服务器获取信息的时间 proxy_read_timeout 120; # 设置缓冲区的大小 proxy_buffer_size 32k; # 设置缓冲区的数量和大小 proxy_buffers 4 32k;