阿里云服务器部署 五 Nginx + springboot

Nginx的部分配置

1. 基础容灾配置(被动健康检查)

upstream 块中,通过 max_failsfail_timeout 参数定义故障转移规则:

upstream 块中,通过 max_failsfail_timeout 参数定义故障转移规则:

nginx

复制

复制代码
upstream backend {
    # 定义后端服务器,设置失败阈值和超时
    server 172.16.108.42:80 max_fails=3 fail_timeout=10s;  # 10秒内失败3次则标记为不可用
    server 172.16.108.43:80 max_fails=3 fail_timeout=10s;
    
    # 负载均衡策略(可选)
    least_conn;  # 最少连接数策略
}
参数说明:
  • max_fails:在 fail_timeout 时间内,允许的最大失败请求次数。

  • fail_timeout:服务器被标记为不可用的时间(超时后自动恢复探测)。

1. 权重(weight)的作用

  • 默认值 :如果未指定 weight,默认值为 1

  • 流量分配规则:根据权重值的比例分配请求。

  • 适用场景:后端服务器性能不均衡时(如一台性能强、一台性能弱),通过权重调整流量分配。

效果:
  • 当某台服务器连续失败 3 次后,Nginx 会将其标记为不可用,10秒内不再分配请求

  • 10秒后,Nginx 会尝试重新发送请求探测是否恢复。

复制代码
http {
    # ... 其他原有配置 ...

    upstream ai-backend {
        server 172.16.108.42:10011 weight=1 max_fails=3 fail_timeout=10s;
        server 172.16.108.43:10011 weight=1 max_fails=3 fail_timeout=10s;
        keepalive 32;
        least_conn;
    }

    server {
        listen 10011;
        server_name 172.16.108.41;

        location / {
            proxy_pass http://ai-backend;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            
            # 超时时间设为20分钟
            proxy_connect_timeout 1200s;
            proxy_read_timeout     1200s;
            proxy_send_timeout     1200s;
        }
    }

    # ... 其他服务配置 ...
}

http {
    # ... 原有其他配置(如AI服务、日志格式等) ...

    # 定义词向量服务的upstream
    upstream wordvec-backend {
        server 172.16.108.44:10011 weight=1 max_fails=3 fail_timeout=10s;  # 本地Nginx服务器的10011端口(若服务部署在Nginx本机)
        server 172.16.108.42:10011 weight=1 max_fails=3 fail_timeout=10s;  # 另一台服务器的10011端口
        keepalive 32;                # 保持长连接
        least_conn;                  # 最少连接数负载均衡
    }

    # 词向量服务的独立监听端口(例如10012)
    server {
        listen 6001;                # 监听外部请求的端口
        server_name 172.16.108.41;   # Nginx服务器IP或域名

        location / {
            proxy_pass http://wordvec-backend;  # 转发到词向量后端
            proxy_http_version 1.1;
            proxy_set_header Connection "";    # 启用HTTP 1.1长连接
            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;

            # 超时时间设为20分钟(1200秒)
            proxy_connect_timeout 1200s;  # 连接后端超时
            proxy_read_timeout     1200s;  # 读取响应超时
            proxy_send_timeout     1200s;  # 发送请求超时
        }
    }
}

1. 检查配置文件语法

在重启前 必须验证配置正确性,避免错误配置导致服务崩溃:

sudo nginx -t

nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:57

nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:64

nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:71

nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:79

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

2. 重新加载配置(平滑重启)

传统方式:

复制代码
sudo nginx -s reload

[root@bigdata41 nginx]# sudo nginx -s reload
nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:57
nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:64
nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:71
nginx: [warn] load balancing method redefined in /etc/nginx/nginx.conf:79
nginx: [error] invalid PID number "" in "/run/nginx.pid"

报异常 暂未处理

3. 完全重启服务(强制重启)
复制代码
sudo systemctl restart nginx

sudo systemctl restart nginx 重新启动nginx

sudo systemctl status nginx 查看nginx 状态

将41上已有的6001端口服务迁移走

sudo systemctl status nginx

相关推荐
跑不了的你6 分钟前
Ubuntu 开启wifi 5G 热点
服务器·5g·ubuntu
TLucas39 分钟前
Centos 7部署.NET 8网站项目
linux·nginx·postgresql·centos·.net
自由鬼4 小时前
如何处理Y2K38问题
java·运维·服务器·程序人生·安全·操作系统
敲上瘾4 小时前
渗透测试常用指令
服务器·测试工具·网络安全·压力测试
Doris_LMS6 小时前
在Linux下安装nginx(保姆级别)
linux·运维·nginx·centos
北极糊的狐6 小时前
“我们无法设置移动热点”、网卡异常、电脑网络适配器没有2.4GHz 802.11n信道宽度和5.2GHz 802.11n信道宽度
运维·服务器
我爱996!7 小时前
SpringMVC——响应
java·服务器·前端
obboda8 小时前
Linux基础复习:字符输入与输出
linux·运维·服务器
Aspartame~10 小时前
企业级WEB应用服务器TOMCAT
java·运维·服务器·tomcat
拾心2111 小时前
【运维基础】Linux 进程调度管理
linux·运维·服务器