资料连接:
https://www.cnblogs.com/sky00747/p/8628866.html
https://www.cnblogs.com/syaving/p/7907447.html
实现Nginx负载均衡的组件主要有两个:
ngx_http_proxy_module proxy 代理模块,用于把请求后抛给服务器节点或upstream服务器池
ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
反向代理重要参数
prox_pass http://server_pools; 通过proxy_pass功能把用户的请求转向到反向代理定义的upstream服务器
proxy_set_header Host $host; 在代理向后端服务器发送的http请求头中加入host字段信息,用于后端服务器配置有多个虚拟主机,可以识别那个虚拟主机
proxy_set_header X-Forwarded-For $remot_addr; 用于接收用户真实IP,而不是代理服务器ip
在配置文件里都会加上include proxy_params或proxy.conf;
在proxy.conf里增加参数,会显得干净
[root@lb01 ~]# cat /etc/nginx/proxy_params
proxy_set_header HOST $host; #设置http请求header项传给后端服务器节点,可实现让代理后端服务器节点获取访问客户端用户真实IP地址
proxy_set_header X-Forwarded-For $remote_addr; #用于接收用户真实IP,而不是代理服务器ip
proxy_connect_timeout 30; #表示反向代理与后端节点服务器连接的超时时间
proxy_send_timeout 60; #代理后端服务器的数据回传时间,在规定时间之内服务器必须传完所有数据,否则断开
proxy_read_timeout 60; # 设置nginx从代理的后端服务器获取信息时间,表示连接建立成功后,nginx等待后端服务器的响应时间
proxy_buffer_size 32k; #设置缓冲区大小,默认该缓冲区大小等于指令proxy_buffers设置大小
proxy_buffering on; #启用或禁用来自代理服务器的响应缓冲
proxy_buffers 4 128k; # 这是缓冲区的数量和大小,nginx从代理的后端服务器获取响应信息
proxy_busy_buffers_size 256k; #用于设置系统很忙时可以使用的proxy_buffers大小,官方推荐proxy_buffer*2
proxy_max_temp_file_size 256k; #当启用来自代理服务器的响应缓冲,并且整个响应不适合proxy_buffer_size和proxy_buffers指令设置的缓冲区时,响应的一部分可以保存到临时文件中。
Nginx根据URL中的目录地址实现代理转发
当用户请求www.daxian.com/upload/xx地址的时候,实现由upload上传服务器池处理请求
当用户请求www.daxian.com/static/xx地址的时候,实现由静态服务器池处理请求
除此之外,对于其他访问请求,全部交给默认动态服务器请求