文章

nginx健康检查upstream

使用nginx中的upstream字段可以实现在主服务器挂掉的时候,将流量转发到备用服务器上,实现生产环境的高可用。

1
2
3
4
upstream primary_yudao {
    server yudao-server:48080 max_fails=3 fail_timeout=10s;
    server test.zmingzhikeji.cn:443 backup;
}

backup字段表示只有在主服务器不可用的时候才会启用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {  
    listen 80;  
    server_name www.zmingzhikeji.cn zmingzhikeji.cn;  

    location /infra/ws {  
        proxy_pass http://primary_yudao/infra/ws;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";  
        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;  
    }  

    # 将所有其他 HTTP 请求重定向到 HTTPS  
    location / {  
        return 301 https://$server_name$request_uri;  
    }  
}

这样配置一个服务块之后,在server块中使用服务名进行引用,然后记得在备用服务器上的nginx增加监听server_name,否则nginx无法正确路由到正确的路径。

本文由作者按照 CC BY 4.0 进行授权