keepalived+nginx-upstream部署高可用反向代理
实验拓扑
实验要求
- 两个web server提供httpd服务,ip地址分别是172.18.27.201、202,掩码是16
- 两个nginx proxy提供高可用反向代理,ip地址分别是172.18.27.102、200,掩码是16.
- client能够访问web server,使用dr模型反向代理。
实验步骤
-
各主机安装软件
##web server安装httpd yum install -y httpd ##nginx proxy安装nginx和keeplived. yum install -y keepalived nginx
-
配置web server
##两台web server配置,两台都为centos7.2 #RS1配置 vim /var/www/html/index.html <h1/>RS1:172.18.27.201</h1> #RS2配置 vim /var/www/html/index.html <h1/>RS2:172.18.27.202</h1> #RS1和RS2启动httpd服务 systemct start httpd
-
配置nginx proxy
##配置nginx proxy服务器 #配置nginx upstream vim /etc/nginx/nginx.conf http { ..... upstream httpdserver{ server 172.18.27.201:80 weight=2; server 172.18.27.202:80 weight=1; server 127.0.0.1:8080 backup; } } #配置keeplived vim /etc/keepalived/keepalived.conf global_defs { vrrp_mcast_group4 224.100.27.1 } vrrp_script chk_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -5 } vrrp_script chk_nginx { script "killall -0 nginx && exit 0 || exit 1" interval 1 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 51 priority 100 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.18.27.254/16 dev eth1 label eth1:0 } track_script { chk_down chk_nginx } track_interface{ eth1 } } #启动服务 service nginx start service keepalived start
配置另一台nginx proxy
#配置nginx upstream vim /etc/nginx/nginx.conf http { ..... upstream httpdserver{ server 172.18.27.201:80 weight=2; server 172.18.27.202:80 weight=1; server 127.0.0.1:8080 backup; } } #配置keeplived vim /etc/keepalived/keepalived.conf global_defs { vrrp_mcast_group4 224.100.27.1 } vrrp_script chk_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0" interval 1 weight -5 } vrrp_script chk_nginx { script "killall -0 nginx && exit 0 || exit 1" interval 1 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state BACKUP interface eno16777736 virtual_router_id 51 priority 98 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.18.27.254/16 dev een016777736 label eno16777736:0 } track_script { chk_down chk_nginx } track_interface{ eno16777736 } } #启动服务 systemctl start nginx keepalived
试验效果
正常状态
一个web server 宕机了
一个nginx proxy服务器宕机了
能够正常运行
原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/75809