Nginx 中配置两个 server

在 Nginx 中配置两个 server,分别代理 Web 服务 和 Minio 服务,并且使用相同的 location / 路径来进行负载均衡,可以按照以下示例配置:
假设:
● Web 服务 地址:http://172.31.51.170:8080 和 http://172.31.51.171:8080
● Minio 服务 地址:http://172.31.51.172:9000 和 http://172.31.51.173:9000
Nginx 配置:

http {
    upstream web_backend {
        # Web 服务的负载均衡
        server 172.31.51.170:8080;
        server 172.31.51.171:8080;
    }

    upstream minio_backend {
        # Minio 服务的负载均衡
        server 172.31.51.172:9000;
        server 172.31.51.173:9000;
    }

    server {
        listen 8066;
        server_name smartgate;

        # 代理 Web 服务
        location / {
            proxy_pass http://web_backend;  # 转发到 Web 服务负载均衡池
            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;
            proxy_http_version 1.1;
            proxy_set_header Connection "upgrade";
        }
    }

    server {
        listen 9000;
        server_name smartgate;

        # 代理 Minio 服务
        location / {
            proxy_pass http://minio_backend;  # 转发到 Minio 服务负载均衡池
            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;
            proxy_http_version 1.1;
            proxy_set_header Connection "upgrade";
        }
    }
}

解析:

  1. 负载均衡:
    ○ 使用 upstream 定义了两个负载均衡池:一个用于 Web 服务 (web_backend),另一个用于 Minio 服务 (minio_backend)。
    ○ server 指令指定了 Web 和 Minio 服务的后端服务器地址(可以是多个,Nginx 会在这些服务器之间进行轮询分发)。
  2. Web 服务代理:
    ○ 在第一个 server 块中,监听端口 8066,并通过 location / 配置将请求转发到 Web 服务的负载均衡池。
    ○ proxy_pass http://web_backend; 会将请求代理到 web_backend,即 Web 服务的两个实例。
    ○ proxy_set_header 指令用来设置请求头部,确保客户端的 IP 等信息可以正确传递。
  3. Minio 服务代理:
    ○ 第二个 server 块监听端口 9000,并通过 location / 配置将请求转发到 Minio 服务的负载均衡池。
    ○ proxy_pass http://minio_backend; 会将请求代理到 minio_backend,即 Minio 服务的两个实例。
  4. 端口监听:
    ○ 第一个 server 块处理 8066 端口的请求,代理 Web 服务。
    ○ 第二个 server 块处理 9000 端口的请求,代理 Minio 服务。
    步骤:
  5. 配置负载均衡池:
    ○ 在 upstream 中指定 Web 和 Minio 服务的后端服务器。
  6. 配置反向代理:
    ○ 使用 location / 来将请求通过 proxy_pass 转发到相应的服务。
  7. 重载 Nginx 配置:
    修改完配置文件后,执行以下命令来重载 Nginx 配置:
    sudo nginx -t # 检查配置是否有误
    sudo systemctl reload nginx # 重载配置
    总结:
    通过这种配置,您可以:
    ● 使用不同的端口(如 8066 和 9000)来分别访问 Web 服务和 Minio 服务。
    ● 使用 Nginx 的负载均衡功能将流量分发到 Web 服务和 Minio 服务的多个实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值