当前位置: 首页 > article >正文

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

Nginx的部分配置
 

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

在 upstream 块中,通过 max_fails 和 fail_timeout 参数定义故障转移规则:

在 upstream 块中,通过 max_fails 和 fail_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


http://www.kler.cn/a/595172.html

相关文章:

  • 3.21-1自动化框架
  • Java求101-200之间有多少素数
  • 数字化转型,目的是为了转型还是数字化?
  • 菜品分页查询-01.需求分析和设计
  • dify联网搜索如何限制在只在一个网站上搜索呢??
  • 《C++11 基于CAS无锁操作的atomic原子类型》
  • Linux基础开发工具——gdb/cgdb(7)
  • AI风向标《AI与视频制作全攻略:从入门到精通实战课程》
  • 多无人车协同探索开源包启动文件介绍(上)
  • k8s中service概述(二)NodePort
  • 加速还是安全?CDN与群联云防护的本质差异与适用场景
  • Blender标注工具
  • Webrtc编译官方示例实现视频通话
  • 【初探数据结构】二叉树的顺序结构——堆的实现详解(上下调整算法的时间复杂度分析)
  • 10-STL、位运算、常用函数库
  • filebeat和logstash区别
  • Mysql Innodb引擎执行过程
  • Day11 动态规划入门
  • 又双叒叕Scrapy爬虫相关的面试题及详细解答
  • 【React】基于自定义Hook提取公共逻辑