keepalived高可用反向代理的nginx
實驗系統:
(1)CentOS 6.6_x86_64;
(2)共有三臺主機,本實驗以ip地址來命名主機,即131主機、132主機、133主機。
實驗前提:防火墻和selinux都關閉,主機之間時間同步
實驗軟件:nginx-x86_64-1.6.2 keepalived-x86_64-1.2.13
實驗拓撲:
一、安裝配置keepalived
1.直接使用yum安裝,133主機只安裝nginx:
yum -y install keepalived nginx
2.在131主機上配置keepalived:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { //此段配置忽略 notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL }
vrrp_instance VI_1 {
state MASTER //定義為MASTER主機
interface eth0
virtual_router_id 55 //虛擬id
priority 100 //優先級
advert_int 1 //檢測間隔
authentication {
auth_type PASS //認證方式
auth_pass abcd //認證密碼
}
virtual_ipaddress {
192.168.245.150 //虛擬ip,即VIP
}
notify_master "/etc/init.d/nginx start" //成為MASTER之后執行的動作
notify_backup "/etc/init.d/nginx stop" //成為BACKUP之后執行的動作
notify_fault "/etc/init.d/nginx stop" //FAULT之后執行的動作
}</pre>
3.將配置文件傳到132主機,并配置:
vim /etc/keepalived/keepalived.conf -------------------------------------------------- 只改動如下兩行 state BACKUP //定義為BACKUP priority 99 //優先級
4.兩臺主機啟動keepalived服務,現在131這臺主機為MASTER,所以服務都起在這臺主機上:
service keepalived start ip addr show
5.停止131主機的keepalived服務,可以看到服務已經轉移到了132這臺主機上:
service keepalived stop
6.再次啟動131主機的keepalived服務,從日志可以看出,它又成為了MASTER:
二、配置nginx的反向代理
1.131和132主機配置nginx:
vim /etc/nginx/conf.d/default.conf
location / { //增加此段 proxy_pass http://192.168.245.133; }
location / { //將此段注釋掉
# root /usr/share/nginx/html;
# index index.html index.htm;
# example
#ModSecurityEnabled on;
#ModSecurityConfig /etc/nginx/modsecurity.conf;
}
service nginx restart
service keepalived restart</pre>
2.133主機啟動測試頁:
rm -rf /usr/share/nginx/html/* //刪除原有頁面文件vim /usr/share/nginx/html/index.html
<h1>This is a test!</h1>
service nginx start</pre>
訪問http://192.168.245.150,133主機上的頁面文件出現,反向代理成功。關閉131主機的keepalived服務,132主機變為MASTER,頁面仍然可以訪問。但是,當nginx進程被kill掉時,并不能實現高可用。
![]()