7. Nginx實現高可用配置
簡介
假設主伺服器掛掉之後,會自動切換到備份伺服器,而備份伺服器也可以將請求轉發到不同的tomcat中去,這就是高可用的效果。
主備伺服器中需要用到一個軟體,名字叫做keepalived,它相當於是一個路由,它裡面會通過一個指令碼來檢測Nginx是否還活著,如果還活著,則進行訪問,否則將切換到另一臺備份伺服器,在這個過程中,它需要對外展示一個虛擬IP,這個IP實際上是不存在的,但是我們需要通過這個IP來進行訪問,首先主伺服器要繫結這個IP,假設主伺服器掛掉之後,keepalived會將虛擬IP繫結到備份伺服器,以此實現高可用的效果。
具體實現
-
準備工作
(1) 需要兩臺伺服器
(2) 在兩臺伺服器上安裝Nginx
(3) 在兩臺伺服器上安裝Keepalived
# 因為我的電腦裝了MySQL,所以需要下載MySQL依賴,這個看個人情況,可以直接嘗試安裝keepalived,安裝不成功,會有提示 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm # 安裝依賴 rpm -ivh mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm # 安裝keepalived yum install keepalived -y # 驗證是否安裝成功 rpm -q -a keepalived
-
進行主從配置
修改兩臺伺服器上的
/etc/keepalived/keepalived.conf
配置檔案global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.2.190 # 備機更改為自己的IP smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" interval 2 #(檢測指令碼執行的間隔) weight 2 } vrrp_instance VI_1 { state MASTER // 備份伺服器上MASTER改為BACKUP interface ens33 //網路卡 virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同 priority 100 # 主、備機取不同的優先順序,主機值較大100,備份機值較小90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.30 // VRRP H 虛擬地址 } }
-
在
/usr/local/src
新增指令碼nginx_check.sh
#!/bin/bash A=`ps -C nginx –no-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
-
啟動兩臺伺服器的Nginx和Keepalived
# 啟動Nginx ./nginx # 啟動Keepalived systemctl start keepalived.service
-
測試
(1)輸入虛擬IP訪問
(2)停止主伺服器的Nginx和Keepalived,再次訪問虛擬IP
# 停止Nginx ./nginx -s stop # 停止Keepalived systemctl stop keepalived.service
相關文章
- keepalived + nginx 實現高可用Nginx
- nginx實現keepalived高可用Nginx
- Nginx&Keepalived 實現高可用Nginx
- 使用keepalived實現nginx的高可用Nginx
- Keepalived實現Nginx負載均衡高可用Nginx負載
- Nginx 和 Keepalived 實現站點高可用Nginx
- Nginx+Keepalived實現高可用站點Nginx
- nginx內建高可用配置與第三方高可用模組nginx_ustream_check_mudule配置Nginx
- Nginx實現請求的負載均衡 + keepalived實現Nginx的高可用Nginx負載
- 高可用系列文章之三 - NGINX 高可用實施方案Nginx
- CentOS7 實現 Keepalived + Nginx 實現高可用 Web 負載均衡CentOSNginxWeb負載
- 【Nginx】如何實現Nginx的高可用負載均衡?看完我也會了!!Nginx負載
- 使用Keepalived實現Nginx的雙機主備高可用Nginx
- MHA+MySQL主從配置實現MySQL高可用MySql
- nginx結合php實現高階配置詳解NginxPHP
- Nginx+Keepalived 主備高可用 安裝與配置Nginx
- Nginx負載均衡高可用Nginx負載
- nginx+keepalived高可用Nginx
- MMM高可用配置
- 服務發現與配置管理高可用最佳實踐
- keeplied + nginx +tomcat 高可用部署NginxTomcat
- keepalived+MySQL實現高可用MySql
- Keepalived實現服務高可用
- Redis Sentinel 高可用實現說明Redis
- 利用Keepalived實現MySQL高可用MySql
- 7.實現加減
- 生成環境之Nginx高可用方案Nginx
- Nginx + Keepalived 高可用叢集部署Nginx
- Keepalived+Nginx+Tomcat配置高可用負載均衡系統示例NginxTomcat負載
- 使用Keepalived實現Nginx的自動重啟及雙主熱備高可用Nginx
- Linux配置雙網路卡繫結實現負載均衡和高可用性配置Linux負載
- MySQL 實現高可用架構之 MHAMySql架構
- 如何設計和實現高可用MySQLMySql
- MHA高可用架構的實現方式架構
- Apache Kyuubi 高可用的雲原生實現Apache
- MySQL 資料高可用的實現思路MySql
- MMM實現mysql高可用性薦MySql
- kubeadm實現k8s高可用叢集環境部署與配置K8S