Nginx负载均衡介绍 Nginx提供负载均衡的模块upstream,这个模块是默认的,不需要重新编译模块。通常情况下,负载均衡一般用于后端两台机器同时提供服务供用户访问,但是用户经常访问的其中一台服务器比较多,另一台基本处于空闲状态,造成资源浪费,而另一台则负载过大造成网站卡慢;这时候就需要将两台服务器加入负载均衡,根据算法来进行资源分配,达到合理利用资源,减少单机的负载过高。 负载均衡算法 weight:指轮询几率,weight和访问比率成正比,权重越大轮询几率就越大,用于后端服务器不均的情况。 ip_hash:每个请求按访问ip的hash结果分配,这样每个用户访问一个后端服务器,可以解决session的问题,这个比较常用。 fair:按照后端服务器的响应时间来分配请求,响应时间短的优先分配。 url_hash:按url的hash结果来分配请求,是每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 实验环境: web1: 192.168.1.20 (后端Tomcat服务器) web2: 192.168.1.30 (后端Nginx服务器) upstream: 192.168.1.10 (负载均衡服务器 ) 1:编辑负载均衡conf文件 [root@upstream vhosts]# vim upstream.conf 说明:upstream{}中定义的是ip_hash算法,server:定义的是后端负载的服务器IP加port 加入以下内容 upstream web { ip_hash; server 192.168.1.20:80; server 192.168.1.30:80; } server { listen 80; server_name www.test.com; location / { proxy_pass http://web; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 2:重新加载Nginx测试即可 [root@upstream vhosts]# nginx -s reload