Linux

你如何讓 Apache2 只使用/響應 IP 地址

  • December 1, 2009

我有一個位於防火牆後面的 apache2 伺服器。外部地址為 24.89.xxx.xxx,內部地址為 10.10.58.1

伺服器的主機名是“myhost”。我沒有 24.89.xxx.xxx 地址的 DNS 條目,因為它還沒有啟用。將解析到它的域名目前正在用於現有站點。

我希望網路開發團隊能夠通過 24.89.xxx.xxx 地址訪問該站點。但是,每當他們查看該站點時,所有 URL 都會將本地主機名插入其中。

所以,<a href="index.php?id=9">Link</a>產生一個 URLhttp://myhost/index.php?id=9 但是,我希望它產生一個 URLhttp://24.89.xxx.xxx/index.php?id=9

Apache 安裝在 Debian Lenny 上。我正在使用“預設”站點。我嘗試了將 NamedVirtualHost 設置為 IP、ServerName 設置為 IP、UseCanonicalName 關閉、VirualHost 等的變體……我所做的一切都不會產生任何變化。是的,我每次都在重新載入配置。

我也試過切斷防火牆,我得到了同樣的結果。我還對 /etc/hosts 文件進行了一些更改。

/etc/主機:

127.0.0.1       localhost
10.10.58.1      myhost
24.89.xxx.xxx   www.inusedomain.org

仔細閱讀,我認為這可能是一個 php 問題。通常,您需要在網站的配置中設置某種“基本 URL ”,以便 php 知道如何創建所有連結(“重寫 url”)。在網站的根目錄中查找 config.php或類似的內容。

如果你有糟糕的開發人員,它可能不在一個變數中,而且到處都是。要找到它,或者可能在單個位置找到它,請使用grep -Ri --include='*.php*' 'localhost' *,將 localhost 更改為目前被覆蓋的任何內容。

不完整的答案:

我不完全確定,但我想我記得將虛擬主機綁定到特定 IP,或更改監聽指令需要完全重啟,而不僅僅是優雅重啟或配置重新載入。

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