0

我使用 Nginx 作为故障转移集群,其中服务作为上游提供。该服务同时在两个节点中运行,并且 Nginx 设置在第三个节点中,该节点重定向到其他节点。当我们关闭一个节点中的服务时,它会成功切换到备份节点,但是当第一个节点中的服务重新打开时,它会切换回第一个节点。以下是 Nginx 中配置的相关部分:

http {
include       mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"'                
                  '"upstream: $upstream_addr"'
                  '"status: $upstream_status"';

access_log  logs\access.log  main;


sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

upstream backend {
    server ip1:port1 fail_timeout=5s max_fails=1;
    server ip2:port2 backup;
}

server {
    listen       8000;
    server_name  ip3;
    
    ssl_certificate      ...\certificate.crt;
    ssl_certificate_key  ...\privateKey.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    
location / {
        proxy_pass https://backend;
       
}

服务再次启动后,如何停止将节点切换到主节点?

谢谢。

4

2 回答 2

2

这是期望的行为。如果 NGINX 在两个节点之间进行平衡,并且其中一个被标记为backupNGINX 将切换到此注释以防主节点完成。

一旦主节点恢复健康,NGINX 将始终切换回主节点。

在此处阅读更多相关信息。https://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream

如果您正在寻找诸如蓝/绿部署之类的东西,那么还有其他概念可以做到这一点。

一个与 NGINX 开源一起工作的可以在这里找到

于 2022-02-11T14:55:51.340 回答
1

备份主节点后,编写 bash 代码将主节点更改为备份节点。如果您需要 bash 代码,请告诉我

于 2022-02-11T23:30:59.453 回答