我有一个案例,我不知道如何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文档 )