Nginx 多网站多公网ip

Nginx 多网站多公网ip

我已经部署了具有架构的平台,其中有 nginx lb 服务器哈希,后面是具有 4 个应用程序的应用服务器。nginx lb 服务器具有如下配置:

上游 example1.com { ip_hash; 服务器 10.10.10.10; 服务器 10.10.20.10 }

上游 example2.com { ip_hash; 服务器 10.10.10.11; 服务器 10.10.20.11 }

因此它代理到具有私有 IP 的服务器。我的问题是这些应用程序中的每一个如何才能获得专用的公共 IP 地址?我的代理服务器有 4 个 IP 地址,我想将每个地址指向每个应用程序。

谢谢!

答案1

这将满足您的要求

创建以下文件 /etc/nginx/sites-available/domain1.com,内容如下

upstream backend1 {
ip_hash;

server 10.10.10.10;
server 10.10.20.10;
}

server {
    listen    1.1.1.1:80;
    listen    1.1.1.2:80;
    server_name    www.domain1.com;

location / {  
        proxy_pass http://backend1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
    }
}

然后创建第二个文件 /etc/nginx/sites-available/domain2.com

upstream backend2 {
ip_hash;

server 10.10.10.11;
server 10.10.20.11;
}

server {
    listen    1.1.1.3:80;
    listen    1.1.1.4:80;
    server_name    www.domain2.com;

location / {  
        proxy_pass http://backend2;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
    }
}

然后执行 ln -s /etc/nginx/sites-available/domain* /etc/nginx/sites-enabled/

相关内容