溫馨提示×

如何在Debian上實現Nginx高可用

小樊
42
2025-10-07 10:35:35
欄目: 智能運維

在Debian上實現Nginx高可用可以通過多種方式來完成,其中最常見的是使用Keepalived和Heartbeat來創建一個虛擬IP(VIP)和一個故障轉移機制。以下是實現Nginx高可用的基本步驟:

1. 安裝Nginx

首先,在兩臺或多臺服務器上安裝Nginx。

sudo apt update
sudo apt install nginx

2. 配置Nginx

確保Nginx配置文件在所有服務器上保持一致。通常配置文件位于/etc/nginx/nginx.conf。

3. 安裝Keepalived

Keepalived用于管理虛擬IP地址和健康檢查。

在所有服務器上安裝Keepalived:

sudo apt install keepalived

4. 配置Keepalived

編輯Keepalived配置文件,通常位于/etc/keepalived/keepalived.conf。

主服務器配置示例(假設IP地址為192.168.1.100):

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1234
    }

    virtual_ipaddress {
        192.168.1.100
    }

    track_script {
        chk_nginx
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.100 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
}

備份服務器配置示例(假設IP地址為192.168.1.101):

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1234
    }

    virtual_ipaddress {
        192.168.1.100
    }

    track_script {
        chk_nginx
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.100 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
}

5. 配置健康檢查腳本

創建一個腳本來檢查Nginx的健康狀態。

sudo nano /etc/keepalived/chk_nginx.sh

腳本內容:

#!/bin/bash

if ! nginx -t; then
    exit 1
fi

exit 0

賦予腳本執行權限:

sudo chmod +x /etc/keepalived/chk_nginx.sh

6. 啟動Keepalived

在所有服務器上啟動Keepalived服務:

sudo systemctl start keepalived
sudo systemctl enable keepalived

7. 驗證配置

確保虛擬IP地址已經分配,并且可以通過瀏覽器訪問。

ip addr show eth0 | grep 192.168.1.100

通過以上步驟,你可以在Debian上實現Nginx的高可用性。主服務器和備份服務器將共享一個虛擬IP地址,當主服務器宕機時,備份服務器將接管虛擬IP地址,確保服務的連續性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女