ubuntu

nginx在ubuntu上如何实现高可用架构

小樊
31
2025-10-14 18:05:20
栏目: 智能运维

在Ubuntu上实现Nginx的高可用架构,通常需要以下几个步骤:

  1. 安装Nginx: 在所有节点上安装Nginx。可以使用以下命令来安装:

    sudo apt update
    sudo apt install nginx
    
  2. 配置负载均衡: 使用Nginx作为反向代理和负载均衡器。编辑Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加负载均衡配置:

    http {
        upstream backend {
            server server1.example.com;
            server server2.example.com;
            server server3.example.com;
        }
    
        server {
            listen 80;
    
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
    
  3. 配置健康检查: 为了确保负载均衡器能够检测到后端服务器的健康状态,可以使用Nginx的health_check模块。首先,确保Nginx编译时包含了该模块,然后配置健康检查:

    http {
        upstream backend {
            server server1.example.com max_fails=3 fail_timeout=30s;
            server server2.example.com max_fails=3 fail_timeout=30s;
            server server3.example.com max_fails=3 fail_timeout=30s;
    
            health_check;
        }
    
        server {
            listen 80;
    
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
    
  4. 配置Keepalived: Keepalived用于实现VIP(虚拟IP)和故障转移。首先安装Keepalived:

    sudo apt install keepalived
    

    然后配置Keepalived。编辑/etc/keepalived/keepalived.conf文件,添加以下内容:

    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
    
        authentication {
            auth_type PASS
            auth_pass 42
        }
    
        virtual_ipaddress {
            192.168.1.100
        }
    }
    

    在备用节点上,将state改为BACKUP,并将priority设置为低于主节点的值(例如99)。

  5. 启动Keepalived: 启动Keepalived服务:

    sudo systemctl start keepalived
    sudo systemctl enable keepalived
    
  6. 测试高可用性: 通过停止主节点上的Nginx服务来测试故障转移:

    sudo systemctl stop nginx
    

    此时,VIP应该会自动切换到备用节点,确保服务的连续性。

通过以上步骤,你可以在Ubuntu上实现一个基本的Nginx高可用架构。根据实际需求,你可能还需要进行更多的配置和优化,例如SSL/TLS加密、日志监控等。

0
看了该问题的人还看了