NGINX One Domain – 内部IP的几个networking服务器

我有一个案例,我不知道如何pipe理,并希望得到一些build议。

当前:

一个域名 – 一个外部IP。 一个已经在使用NGINX的Debian服务器来托pipe网页。

So, as it is now, I have *.domain.com pointing to server.internal.ip. Internal IP is on a 192.168.1.x/24 network and all works just as intended. 

新案例:

我被要求创buildCNAME的域名,即

 cname1.domain.com cname2.domain.com cname3.domain.com 

等等。

我现在需要做的是将相应的cname指向相应的服务器,即

 cname1.domain.com to server1.internal.ip cname2.domain.com to server2.internal.ip .. cname9.domain.com to server9.internal.ip 

我仍然需要确保所有不属于CNAME的其他请求(即* .domain.com)都属于原始的server.internal.ip。

我没有得到更多的外部IP号码,我已经使用我所拥有的。

NGINX怎么样?

我假设我需要设置已经工作的server.internal.ipredirect端口80上的请求基于cname到相应的新的内部服务器?

我今天使用的路由器配有DD-WRT。

任何提示/指向一个HOWTO,我没有设法find将不胜感激。

我假设你已经在路由器上将端口80转发到服务器server.internal.ip ,所以这个服务器获取所有的stream量到端口80上的公共IP。

您可以在server.internal.ip上有多个基于名称的虚拟主机,作为其他服务器的转发代理。

server.internal.ip ,你可以添加如下内容到你的nginx.conf

 server { listen 192.168.1.1:80; server_name cname1.domain.com; root /var/www/localhost/htdocs; location ~ ^/(.*)$ { proxy_pass http://server1.internal.ip:80/$1$is_args$args; proxy_set_header Host cname1.domain.com; proxy_set_header X-Real-IP $remote_addr; } } server { listen 192.168.1.1:80; server_name cname2.domain.com; root /var/www/localhost/htdocs; location ~ ^/(.*)$ { proxy_pass http://server2.internal.ip:80/$1$is_args$args; proxy_set_header Host cname2.domain.com; proxy_set_header X-Real-IP $remote_addr; } } 

标题X-Real-IP可以用于logging来自于IP的请求(否则可以省略)。 这些虚拟主机将优先于*.domain.com ( Nginx文档 )