我已经部署了具有架构的平台,其中有 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/