輔助nginx負(fù)載均衡器的配置說明
nginx負(fù)載均衡器是一個很好很節(jié)約成本的一種選擇,多數(shù)用在中小型的企業(yè)之中。前面我們對nginx負(fù)載均衡器的主機(jī)進(jìn)行了詳細(xì)的配置說明,現(xiàn)在就來對輔nginx負(fù)載均衡器來做配置介紹。大致的配置過程基本相同,首先我們可以檢查一下它們的啟用狀態(tài),詳細(xì)的命令代碼如下:
- [root@ltos html]# ip a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
- inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0
- inet 192.168.0.188/32 scope global eth0
- inet6 fe80::20c:29ff:feba:9be7/64 scope link
- valid_lft forever preferred_lft forever
- 3: sit0: <NOARP> mtu 1480 qdisc noop
- link/sit 0.0.0.0 brd 0.0.0.0
說明vip已經(jīng)啟動,這樣主服務(wù)器就配置好了,輔機(jī)的配置大致一樣,除了配置文件有少部分的變化,下面貼出輔nginx負(fù)載均衡器的配置文件:
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- yuhongchun027@163.com
- }
- notification_email_from keepalived@chtopnet.com
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- vrrp_instance VI_1 {
- state BACKUP
- interface eth0
- virtual_router_id 51
- mcast_src_ip 192.168.0.155<==輔nginx負(fù)載均衡器的IP的地址
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass chtopnet
- }
- virtual_ipaddress {
- 192.168.0.188<==vip地址
- }
- }
#p#檢查輔nginx負(fù)載均衡器配置
- [root@ltos html]# ip a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
- inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0
- inet 192.168.0.188/32 scope global eth0
- inet6 fe80::20c:29ff:feba:9be7/64 scope link
- valid_lft forever preferred_lft forever
- 3: sit0: <NOARP> mtu 1480 qdisc noop
- link/sit 0.0.0.0 brd 0.0.0.0
測試其效果方法很簡單,分別在主、輔nginx負(fù)載均衡器上/var/www/html/下建立不同的主頁及內(nèi)容文件index.html,內(nèi)容分別為192.168.0.154,192.168.0.155,然后用客戶機(jī)上elinks http://192.168.0.188,主機(jī)down掉后輔機(jī)會馬上接替提供服務(wù),間隔時間幾乎無法感覺出來;但如果是停掉master的nginx服務(wù),keepalived就不能自動啟動nginx服務(wù)了,這個也是相對于heartbeat2.X不完善的地方,即它不能做到服務(wù)級別-Nginx的HA。
◆這里要說明的是:
一、如何讓master狀態(tài)的主機(jī)掛掉后不搶占的辦法:可將二臺Nginx負(fù)載均衡器均設(shè)成backup狀態(tài)是因?yàn)閚opreempt(不搶占)只支持backup模式,而讓哪一臺backup成為master,這個由優(yōu)先級priority為決定,這個配置是參考了《Keepalived權(quán)威指南》做法。
二、此種架構(gòu)的缺點(diǎn)是備機(jī)服務(wù)器處于閑置狀態(tài),浪費(fèi)了硬件資源,如果要有效的利用二臺nginx負(fù)載均衡器,可參考張宴的金山逍遙網(wǎng)nginx負(fù)載均衡的雙機(jī)熱備的做法。
三、keepalived比較heartbeat2.X而言,它目前不能做nginx服務(wù)的HA,但由于目前nginx作反向代理/負(fù)載均衡器非常穩(wěn)定,出現(xiàn)宕機(jī)的機(jī)率微乎其乎(關(guān)鍵是nginx的master進(jìn)程超穩(wěn)定),我做的一些基于nginx負(fù)載均衡的小項目已在線穩(wěn)定一年以上(幾乎從來沒出現(xiàn)單nginx負(fù)載均衡掛掉的情況),所以這個可以應(yīng)用于成熟的生產(chǎn)環(huán)境(例如新浪);在生產(chǎn)環(huán)境下,比起用shell腳本監(jiān)控nginx的master狀態(tài),反而效果不如采用nagios/手機(jī)短信報警的方式更為高效。