nginx的代理功能是通过http proxy 模块实现的。该模块每个选项的详细解释如下。
- proxy_set_header 设置HTTP请求header项传给后端服务器节点,例如:可以实现让后端服务器节点获取访问客户端用户的真实IP地址。
- client_body_buffer_size 用于指定客户端请求主体缓冲区大小。
- proxy_connect_timeout 表示反向代理与后端服务器连接的超时时间,即发起握手等候响应的超时时间。
- proxy_send_timeout 表示代理后端服务器的数据传回时间,即在规定时间之内后端服务器必须传完所有的数据,否则nginx将断开这个连接。
- proxy_read_timeout 设置nginx从代理的后端服务器获取信息的时间。表示连接成功之后,nginx等待后端服务器的响应时间,也就是nginx已经进入后端的排队之中等候处理的时间。
- proxy_buffer_size 设置缓冲区大小,默认该缓冲区大小等于指令proxy_buffers 设置的大小。
- proxy_buffers 设置缓冲区大小。nginx从代理的后端服务器获取的响应信息,会放置到缓冲区。
- proxy_busy_buffers_size 用于设置系统繁忙时可以使用的proxy_buffer的大小。官方推荐的大小为proxy_buffers*2。
- proxy_temp_file_write_size 指定proxy缓存临时文件的大小。
nginx反向代理重要参数 | 解释 |
---|---|
proxy_pass http://server_pools; | 通过proxy_pass功能把用户的请求转发给反向代理定义的upstream服务器池 |
proxy_set_header Host $host; | 在代理向后端服务器发送的http请求头中加入host字段信息,用于当后端服务器配置有多个虚拟主机时,可以识别代理的是哪个虚拟主机。这是节点服务器多虚拟主机时的关键配置 |
proxy_set_header X-Forwarded-For $remote_addr; | 在代理向后端服务器发送的http请求头中加入X-Forwarded-For字段信息,用于后端服务器程序、日志等接收记录真实用户的IP,而不是代理服务器的IP。这是反向代理时,节点服务器获取用户真实IP的必要功能配置。 |
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
#nginx.conf文件
http {
include mime.types;
……
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" " $http_x_forwarder_for"' ;
……
}
评论