http_proxy_module 模块(proxy_pass 指令)

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;
原文地址:https://www.cnblogs.com/reycg-blog/p/7997450.html