
設想:
由於IP數量有限,多個網域名稱會被解析為同一個IP位址。然而,這些網域可能並非都運作在同一個網頁伺服器、虛擬機器甚至專用機器上。因此,我想根據 url 中的網域將進入專用網路的網域路由到正確的位置。
我怎樣才能做到這一點?
答案1
大多數路由器/防火牆允許基於特定連接埠重定向流量,例如所有 SMTP 流量(連接埠 25)都會重定向到 192.168.1.1。
但是,如果您有多個伺服器來處理流量(每個網域 1 個伺服器)。您需要安裝諸如反向代理之類的東西(nginx支援 HTTP、IMAP、POP3)。例如,所有到端口 80 的流量都會被重定向到192.168.1.2
運行 nginx 的端口,並且根據主機名稱將重定向到localhost
或192.168.1.4
。
答案2
我不確定我是否完全理解你的問題。如果您這樣做,您將擁有多台電腦作為 NAT 後面的 HTTP 伺服器運行。當某個請求到達時,您希望將其轉發到您的一台伺服器,對吧?
如果您使用 apache 和 mod_rewrite,也許可以這樣提取:
乾杯。
答案3
我已經使用類似的方法做了一些事情代理通行證Apache 中 mod_proxy 下的指令。
首先,使用基於名稱的虛擬主機若要允許不同的網域使用相同的 IP 託管不同的站點,那麼對於與內部網路伺服器關聯的網域,您有下列配置:
# Within your VirtualHost definition
ServerName somedomain.com
ProxyPass / http://10.0.1.42/
ProxyPassReverse / http://10.0.1.42/
這將導致所有請求都http://somedomain.com
透明地代理到託管在 上的內部網站http://10.0.1.42
。
華泰
答案4
不久前我也在尋找同樣的東西。從來沒有抽出時間去做,但我認為這可能有用。
使用mod
_proxy 模組並使用該noproxy
指令。