這篇文章主要介紹了nginx高可用集群的實現過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1、配置:
(1)需要兩臺nginx服務器 (2)需要keepalived (3)需要虛擬ip
2、配置高可用的準備工作
(1)需要兩臺服務器192.168.180.113和192.168.180.112 (2)在兩臺服務器安裝nginx (3)在兩臺服務器安裝keepalived
3、在兩臺服務器安裝keepalived
(1)使用yum命令進行安裝
(2)安裝之后,在etc里面生成目錄keepalived,有文件keepalived.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
[root@topcheer dev] # yum install keepalived -y 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * epel: ftp .riken.jp * extras: mirrors.cn99.com * updates: mirror.lzu.edu.cn gitlab_gitlab-ce /x86_64/signature | 836 B 00:00:00 gitlab_gitlab-ce /x86_64/signature | 1.0 kB 00:00:00 !!! gitlab_gitlab-ce- source /signature | 836 B 00:00:00 gitlab_gitlab-ce- source /signature | 951 B 00:00:00 !!! 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 keepalived.x86_64.0.1.3.5-16.el7 將被 安裝 --> 正在處理依賴關系 libnetsnmpmibs.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要 --> 正在處理依賴關系 libnetsnmpagent.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要 --> 正在檢查事務 ---> 軟件包 net-snmp-agent-libs.x86_64.1.5.7.2-43.el7 將被 安裝 --> 解決依賴關系完成 ? 依賴關系解決 ? ========================================================================================================================================== Package 架構 版本 源 大小 ========================================================================================================================================== 正在安裝: keepalived x86_64 1.3.5-16.el7 base 331 k 為依賴而安裝: net-snmp-agent-libs x86_64 1:5.7.2-43.el7 base 706 k ? 事務概要 ========================================================================================================================================== 安裝 1 軟件包 (+1 依賴軟件包) ? 總下載量:1.0 M 安裝大?。?.0 M Downloading packages: (1 /2 ): net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm | 706 kB 00:00:00 (2 /2 ): keepalived-1.3.5-16.el7.x86_64.rpm | 331 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------ 總計 1.8 MB /s | 1.0 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 1 /2 正在安裝 : keepalived-1.3.5-16.el7.x86_64 2 /2 驗證中 : keepalived-1.3.5-16.el7.x86_64 1 /2 驗證中 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 2 /2 ? 已安裝: keepalived.x86_64 0:1.3.5-16.el7 ? 作為依賴被安裝: net-snmp-agent-libs.x86_64 1:5.7.2-43.el7 ? 完畢! |
4 、修改配置文件
2臺都要換,一個主機,一個從機
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[root@topcheer keepalived] # cat keepalived.conf global_defs { notification_email { } notification_email_from [email protected] smtp_server 192.168.180.113 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 BACKUP # 備份服務器上將 MASTER 改為 BACKUP interface ens33 // 網卡 virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同 priority 40 # 主、備機取不同的優先級,主機值較大,備份機值較小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.180.114 // VRRP H 虛擬地址 } } |
腳本:
1
2
3
4
5
6
7
8
9
10
|
[root@topcheer src] # cat nginx_check.sh #!/bin/bash A=` ps -C nginx ?Cno-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 [root@topcheer src] # |
把兩臺服務器上nginx和keepalived啟動
啟動nginx:./nginx 由于我112上安裝了gitlab自帶nginx,就不要啟動了 啟動keepalived:systemctl start keepalived.service
5、測試
把113的nginx和keepalived關掉,發現會切換到112上
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/dalianpai/p/11754433.html