Nginx 配置實例-配置高可用

1. 實現效果

2. 兩臺機器 nginx 的安裝

2.1 192.168.25.120 中 nginx 的安裝

2.1.1 安裝 pcre 依賴

su - root							// 切換到 root 用戶

tar zxvf pcre-8.37.tar.gz			// 解壓 pcre 安裝包	

cd pcre-8.37						// 進入 pcre-8.37 目錄	
./configure							// 配置 pcre-8.37 
make && make install				// 編譯安裝 pcre-8.37

pcre-config --version				// pcre 安裝成功後,查看其版本號

2.1.2 安裝其他依賴

su - root							// 切換到 root 用戶

// 安裝其他依賴
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel	

2.1.3 Nginx 的安裝

su - root							// 切換到 root 用戶

tar zxvf nginx-1.12.2.tar.gz		// 解壓 nginx-1.12.2.tar.gz 安裝包

cd nginx-1.12.2						// 進入 nginx-1.12.2 目錄
./configure							// 配置 nginx-1.12.2
make && make install				// 編譯安裝 nginx-1.12.2

2.1.4 驗證

/usr/local/nginx/sbin/nginx				// 啓動 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 進程狀態

啓動 nginx 之後,瀏覽器訪問 nginx 所在主機的 IP 即端口,此處爲 192.168.25.120:80(80爲默認短褲,訪問時可省略),顯示頁面如下:
在這裏插入圖片描述

2.2 192.168.25.121 中 nginx 的安裝

2.2.1 安裝 pcre 依賴

su - root							// 切換到 root 用戶

tar zxvf pcre-8.37.tar.gz			// 解壓 pcre 安裝包	

cd pcre-8.37						// 進入 pcre-8.37 目錄	
./configure							// 配置 pcre-8.37 
make && make install				// 編譯安裝 pcre-8.37

pcre-config --version				// pcre 安裝成功後,查看其版本號

2.2.2 安裝其他依賴

su - root							// 切換到 root 用戶

// 安裝其他依賴
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel	

2.2.3 Nginx 的安裝

su - root							// 切換到 root 用戶

tar zxvf nginx-1.12.2.tar.gz		// 解壓 nginx-1.12.2.tar.gz 安裝包

cd nginx-1.12.2						// 進入 nginx-1.12.2 目錄
./configure							// 配置 nginx-1.12.2
make && make install				// 編譯安裝 nginx-1.12.2

2.2.4 驗證

/usr/local/nginx/sbin/nginx				// 啓動 nginx
/usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
ps -ef | grep nginx						// 查看 nginx 進程狀態

啓動 nginx 之後,瀏覽器訪問 nginx 所在主機的 IP 即端口,此處爲 192.168.25.120:80(80爲默認短褲,訪問時可省略),顯示頁面如下:
在這裏插入圖片描述

3. 兩臺機器 keepalived 的安裝

3.1 192.168.25.120 中 keepalived 的安裝

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

# 使用 yum 命令安裝 keepalived
yum install -y keepalived

# 使用 rpm 命令查詢 keepalived 的安裝包
rpm -q -a keepalived

3.2 192.168.25.121 中 keepalived 的安裝

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

# 使用 yum 命令安裝 keepalived
yum install -y keepalived

# 使用 rpm 命令查詢 keepalived 的安裝包
rpm -q -a keepalived

4. 兩臺機器高可用的配置

這裏採用 192.168.25.120 爲主、192.168.25.121 爲備的架構,其中 nginx_check.sh 腳本用於檢測 nginx 是否存活

4.1 nginx 檢測腳本的準備

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

4.2 192.168.25.120 主機的 keepalived 配置文件的修改

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.25.120		# smtp 服務器地址,本機IP
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/usr/local/nginx/nginx_check.sh"
    interval 2              # 檢測腳本執行的間隔
    weight 2
}

vrrp_instance VI_1 {
    state MASTER            # 備份服務器上將 MASTER 改爲 BACKUP
    interface eth0          # 網卡
    virtual_router_id 51    # 主、備機的 virtual_router_id 須相同
    priority 90            # 主、備機取不同的優先級,主機值較大,備機值較小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.25.125      # VRRP H 虛擬地址
    }
}

4.3 192.168.25.121 主機的 keepalived 配置文件的修改

keepalived 配置文件位置:/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.25.121
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/usr/local/nginx/nginx_check.sh"
    interval 2              # 檢測腳本執行的間隔
    weight 2
}

vrrp_instance VI_1 {
    state MASTER            # 備份服務器上將 MASTER 改爲 BACKUP
    interface eth0          # 網卡
    virtual_router_id 51    # 主、備機的 virtual_router_id 須相同
    priority 100            # 主、備機取不同的優先級,主機值較大,備機值較小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.25.125      # VRRP H 虛擬地址
    }
}

5. 驗證

5.1 啓動 keepalived

先啓動主機器,再啓動從機器

# 啓動 keepalived
systemctl start keepalived.service

5.2 測試 keepalived 中從機器虛擬 IP 的綁定

瀏覽器訪問 keepalived 中配置的虛擬 IP:192.168.25.125
在這裏插入圖片描述
使用 ip 命令查看,發現當前 121 主機的網卡 eth0 已綁定 192.168.25.125 的虛擬 IP
在這裏插入圖片描述

5.2 測試停止主服務器時的情況

停止 192.168.25.120 主服務器的 nginx 和 keepalived

# 停止 keepalived
systemctl stop keepalived.service

# 停止 nginx
/usr/local/nginx/sbin/nginx -s stop

再次瀏覽器訪問 192.168.25.125
在這裏插入圖片描述
使用 ip 命令查看,發現當前 121 主機的網卡 eth0 已綁定 125 的虛擬 IP
在這裏插入圖片描述

參考文檔

Keepalived 工作原理和配置說明
Linux高可用之Keepalived

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章