阿里云服务器部署 五 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

相关推荐
竹之却1 小时前
Ubuntu 更换阿里云镜像源图文详细教程
linux·ubuntu·阿里云
集装箱搬运工1 小时前
怎么快速部署Sock5代理到ubuntu云服务器
java·服务器·网络
fridayCodeFly2 小时前
:ref 和 this.$refs 的区别及 $ 的作用
linux·运维·服务器
Hum8le4 小时前
小科普《DNS服务器》
运维·服务器
故事与他6456 小时前
Thinkphp(TP)框架漏洞攻略
android·服务器·网络·中间件·tomcat
yunqi12156 小时前
【负载均衡系列】nginx负载高怎么排查
运维·nginx·负载均衡
IYU_6 小时前
VulnHub-Web-Machine-N7通关攻略
服务器·安全·web安全·网络安全
m0_490240678 小时前
qt实现一个简单http服务器和客户端
服务器·qt·http
若云止水9 小时前
ngx_http_add_location
nginx
若云止水9 小时前
ngx_http_escape_location_name
nginx