Apache-2.2

IP重定向後訪問站點

  • March 23, 2015

我們正在使用 Apache2 在本地網路的一個系統上託管多個站點。一個這樣的網站如下:

<VirtualHost *:80>
   ServerName wiki.idi.local
   DocumentRoot /srv/dokuwiki/engineering
</VirtualHost>

在我們的本地 DNS 伺服器上,我們將地址 wiki.idi.local 轉發到託管該站點的 PC,一切都按預期工作。

從本週開始,我們通過將本地 IP 地址映射到外部地址(通過代理重定向),獲得了一種從外部訪問本地網路的方法。例如,地址 3.205.151.6(外部)被重定向到 172.16.1.6(內部)。這適用於在 VirtualHost 中 DocumentRoot 為 localhost:port 的站點。在這種情況下,我們可以簡單地呼叫 3.205.151.6:port 來訪問我們的系統。問題是在上面提到的情況下,我找不到僅通過 IP 訪問該站點的方法。有沒有辦法在沒有訪問進行轉發的代理的情況下做到這一點?

您可能想要的是在您的 DNS 軟體中設置視圖,以便來自 Internet 的 DNS 查詢得到公共 IP 地址的答复,而來自本地網路的 DNS 查詢得到私有 IP 的答复。有關更多資訊,請查看此連結,例如

在 Apache 方面,您需要添加一些公共名稱,因為帶有 .local 的域是不可解析的。因此,假設您擁有域idi.com,您可以使用類似的內容更新您的 VirtualHost

<VirtualHost *:80>
   ServerName wiki.idi.local
   ServerAlias wiki.idi.com
   DocumentRoot /srv/dokuwiki/engineering
</VirtualHost>

並確保 wiki.idi.com 的公共 DNS 視圖以 IP 響應,3.205.151.6並且可能您可以為同一 wiki.idi.com 設置私有 DNS 視圖以進行響應,172.16.1.6而您根本不需要域wiki.idi.local

引用自:https://serverfault.com/questions/643729