如何根據 url 中的網域將 Web 請求路由到我的專用網路?

如何根據 url 中的網域將 Web 請求路由到我的專用網路?

設想:

由於IP數量有限,多個網域名稱會被解析為同一個IP位址。然而,這些網域可能並非都運作在同一個網頁伺服器、虛擬機器甚至專用機器上。因此,我想根據 url 中的網域將進入專用網路的網域路由到正確的位置。

我怎樣才能做到這一點?

答案1

大多數路由器/防火牆允許基於特定連接埠重定向流量,例如所有 SMTP 流量(連接埠 25)都會重定向到 192.168.1.1。

但是,如果您有多個伺服器來處理流量(每個網域 1 個伺服器)。您需要安裝諸如反向代理之類的東西(nginx支援 HTTP、IMAP、POP3)。例如,所有到端口 80 的流量都會被重定向到192.168.1.2運行 nginx 的端口,並且根據主機名稱將重定向到localhost192.168.1.4

答案2

我不確定我是否完全理解你的問題。如果您這樣做,您將擁有多台電腦作為 NAT 後面的 HTTP 伺服器運行。當某個請求到達時,您希望將其轉發到您的一台伺服器,對吧?

如果您使用 apache 和 mod_rewrite,也許可以這樣提取:

  1. http://www.linuxquestions.org/questions/linux-networking-3/apache-forward-request-to-another-box-264864/

  2. http://www.sematopia.com/2007/09/apache-forwarding-requests-to-another-server/

乾杯。

答案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指令。

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#noproxy

相關內容