Linux
NGINX 一個域 - 內部 IP 上的多個網路伺服器
我有一個案例,我不確定如何處理,希望得到一些建議。
目前的:
一個域名 - 一個外部 IP。一個已經在使用 NGINX 的 Debian 伺服器來託管網頁。
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.
新案例:
我被要求為 domain.com 創建 CNAME,即
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.ip 以根據 cname 將埠 80 上的請求重定向到相應的新內部伺服器?
我今天使用的路由器配備了 DD-WRT。
任何我沒有找到的關於 HOWTO 的提示/指針將不勝感激。
我假設您已將
80
路由器上的埠轉發到伺服器server.internal.ip
,因此該伺服器將所有流量都發送到埠 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; } }
Header
X-Real-IP
可用於記錄來自的 IP 請求(否則可以省略)。這些虛擬主機將優先於您的*.domain.com
(Nginx 文件)