Nginx反向代理与负载均衡实战篇

2019-10-17 16:52:26丽君

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_buffers大小,官方推荐的大小为 proxy_buffers * 2
proxy_trmp_file_write_size 指定proxy缓存临时文件的大小

proxy_pass使用

格式:proxy_pass URL;

示例如下:

proxy_pass http://blog.syushin.com/;
proxy_pass http://192.168.30.7:8080/uri;
proxy_pass http://tmp/www.sock;

URL可以是域名,IP地址也可以是socket文件。

对于proxy_pass的配置有几点需要注意:
示例1

location /upload/ {
    proxy_pass http://192.168.30.7;
}

示例2

location /upload/ {
    proxy_pass http://192.168.30.7/; # 注意多了一个斜杆
}

示例3

location /upload/ {
    proxy_pass http://192.168.30.7/blog/;
}

示例4

location /upload/ {
    proxy_pass http://192.168.30.7/blog;
}

假如server_name为blog.syushin.com,当请求http://blog.syushin.com/uploa...,上面示例1-4的请求结果是:

示例1:http://192.168.30.7/upload/index.html
示例2:http://192.168.30.7/index.html
示例3:http://192.168.30.7/blog/index.html
示例4:http://192.168.30.7/blogindex.html

好了,这篇文章就介绍到这了,希望大家以后多多支持易采站长站。