副问题[/!--empirenews.page--]
当我们的网站处于成长初期的时辰,nginx只署理了后端一台处事器,但因为我们网站名气大涨会见的人越来越多一台处事器其实是顶不住,于是我们加了多台处事器,那么多台处事器又怎么设置署理呢,我们这里以两台处事器为案例,为各人做演示。

1. upstream 负载平衡模块声名
如:
下面设定负载平衡的处事器列表。
- upstream test.cc{
- ip_hash;
- server 192.168.1.10:80;
- server 192.168.1.11:80 down;
- server 192.168.1.12:8009 max_fails=3 fail_timeout=20s;
- server 192.168.1.13:8080;
- }
- server {
- location / {
- proxy_pass http://test.cc;
- }
- }
upstream 是 Nginx 的HTTP Upstream模块,这个模块通过一个简朴的调治算法来实现客户端IP到后端处事器的负载平衡。
在上面的设定中,通过upstream指令指定了一个负载平衡器的名称 test.cc, 这个名称可以恣意指定,在后头必要用到的处所直接挪用即可。
2.upstream 支持的负载平衡算法
Nginx的负载平衡模块今朝支持4种调治算法,下面举办别离先容,个中后两项属于第三方调治算法。
轮询(默认):每个哀求定时刻次序一一分派到差异的后端处事器,假如后端某台处事器宕机,妨碍体系被自动剔除,行使户会见不受影响。Weight 指定轮询权值,Weight值越大,分派到的会识趣率越高,首要用于后端每个处事器机能不均的环境下。
ip_hash:每个哀求按会见IP的hash功效分派,这样来自统一个IP的访客牢靠会见一个后端处事器,有用办理了动态网页存在的session共享题目。
fair:这是比上面两个越发智能的负载平衡算法。此种算法可以依据页面巨细和加载时刻黑白智能地举办负载平衡,也就是按照后端处事器的相应时刻来分派哀求,相应时刻短的优先分派。Nginx自己是不支持fair的,假如必要行使这种调治算法,必需下载Nginx的upstream_fair模块。
url_hash:此要领按会见url的hash功效来分派哀求,使每个url定向到统一个后端处事器,可以进一步进步后端缓存处事器的服从。Nginx自己是不支持url_hash的,假如必要行使这种调治算法,必需安装Nginx 的hash软件包。
3.upstream 支持的状态参数
在HTTP Upstream模块中,可以通过server指令指定后端处事器的IP地点和端口,同时还可以设定每个后端处事器在负载平衡调治中的状态。常用的状态有:
down : 暗示当前的server暂且不参加负载平衡。
backup : 预留的备份呆板。当其他全部的非backup呆板呈现妨碍可能忙的时辰,才会哀求backup 呆板,因此这台呆板的压力最轻。
max_fails : 应承哀求失败的次数,默以为1。当高出最大次数时,返回proxy_next_upstream 模块界说的错误。
fail_timeout : 在经验了max_fails次失败后,停息处事的时刻。max_fails可以和fail_timeout一路行使。
注 : 当负载调治算法为ip_hash时,后端处事器在负载平衡调治中的状态不能是weight和backup。
4.尝试拓扑
5. 设置nginx负载平衡
- [root@nginx ~]# vim /etc/nginx/nginx.conf
- upstream webservers {
- server 192.168.18.201 weight=1;
- server 192.168.18.202 weight=1;
- }
- server {
- listen 80;
- server_name localhost;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- proxy_pass http://webservers;
- proxy_set_header X-Real-IP $remote_addr;
- }
- }
注,upstream是界说在server{ }之外的,不能界说在server{ }内部。界说好upstream之后,用proxy_pass引用一下即可。
6.从头加载一下设置文件
- [root@nginx ~]# service nginx reload
- nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
- nginx: configuration file /etc/nginx/nginx.conf test is successful
- 从头载入 nginx: [确定]
从头载入 nginx: [确定]
7.测试一下
注,各人可以不绝的革新赏识的内容,可以发明web1与web2是瓜代呈现的,到达了负载平衡的结果。
8.查察一下Web会见处事器日记
Web1:
- [root@web1 ~]# tail /var/log/httpd/access_log
- 192.168.1.208 - - [04/Sep/2013:09:41:58 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:41:58 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:41:59 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:41:59 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:44:21 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:44:22 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
- 192.168.1.208 - - [04/Sep/2013:09:44:22 +0800] "GET / HTTP/1.0" 200 23 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
Web2:
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|