[原创]Linux环境下Nginx 通过upstream如何配置负载均衡以及实现
云海天教程 原创文章,转载请注明出处。
一,服务器准备情况,四台:
1,前段服务器:
192.168.1.112 hosts定向测试域名nginx.21yunwei.com
192.168.1.113 备用前端服务器。
后端web服务器池web_pools:
192.168.1.102
192.168.1.103
2,环境:统一centos 6
前端服务器安装nginx。环境安装这里就不写了,可以参考文章《linux下如何安装nginx环境配置》部署nginx环境。
后端web服务器 池统一安装apache:yum install httpd -y 并关闭防火墙。否则会出现前端服务器无法请求web池情况。
二,nginx负载均衡配置。
1,修改nginx配置文件。
egrep -v "#| ^$" nginx.conf.default > nginx.conf
处理配置文件并输出到nginx.conf,这里清除了注释行和空行,方便直观查看nginx配置文件。
我们知道nginx负载均衡是通过ngx_http_upstream_module这个模块来实现的,详情可以查看官网http://nginx.org/en/docs/http/ngx_http_upstream_module.html介绍。
修改后的配置文件如下:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; upstream web_pools { server 192.168.1.102:80 weight=5; //192.168.1.102web节点服务器,权重5.权重越大,越优先分配。 server 192.168.1.103:80 weight=1; //192.168.1.103web节点服务器,权重5.测试使用,可以根据实际环境进行权重分配。 server 192.168.1.104:80 backup; // 备用节点服务器,如果之前启用的web节点挂了,备用服务器将进行启用访问。 } server { listen 80; server_name nginx.21yunwei.com; location / { proxy_pass http://web_pools; } } }
更为详细的upstream用法请参考《Nginx模块upstream模块详细介绍以及调度算法》
三,访问结果,简易负载均衡效果已经实现。