
我想在我們的 apache Web 伺服器中設定一個特殊的設定。我想根據用戶的 IP 位址向他們顯示網站。
我們計劃升級我們的網站。在升級過程中,我們將放置一個維護網站:因此所有連接到我們網站的使用者都將獲得該網站。
有 200 個網站受到升級影響,因此我不想更改每個網站的 apache 設定。
為了測試升級,我需要將 apache 設定為僅允許我的 IP 位址存取所請求的網站。如果我的 IP 位址是 abcd,並且如果我請求 test.com,我想查看它。但所有其他具有不同 IP 位址的使用者即使尋找 test.com,也應該獲得維護網站。
我們的網站伺服器託管在辦公室外(ovh.com 法國)。測試人員是我們辦公室的開發人員和我。我們可以採取一些網站並啟用它們進行測試,其中我們在每個網站中實施IP 限制:想法是在這些網站上,如果訪客的IP 位址與我們辦公室的IP 位址不同,我們會將此訪客重定向到我們的維護網站,否則我們會顯示網站。
有沒有辦法做到這一點?
謝謝。
答案1
我想你可能會發現供測試用新版本的網站使用單獨的虛擬主機,並使用不同的 ServerName 指令(例如,testing.yourdomain.com)將為您提供比巧妙處理 IP 位址更大的靈活性。然後,當準備上線時,您只需將 ServerName 變更為即時伺服器名稱即可。
然而,能夠為不同的 IP 位址提供不同的內容是一件有用的事情,特別是如果您想測試不同訪客的網站不同版本的效能,或者根據從 IP 位址派生的地理位置提供內容。
如果這就是你想要的,那麼你可以忽略我的回答。但是,如果您只需要在完成之前授予少數人訪問測試網站的權限,請盡可能簡單。
答案2
您的伺服器位於哪裡?如果它與您的測試儀位於同一位置(即網路方面),因此具有本機 IP 位址和公用 IP 位址,那麼您可以讓伺服器偵聽與測試器相同範圍內的本機 IP 位址,並且使用本機DNS 將即時站點解析為該IP 位址。
您仍然需要為此編輯您的虛擬主機,但坦白說,根據您提供的信息,我看不出有任何方法可以避免這種情況。
答案3
設定一台單獨的機器(虛擬的?)來提供當前內容並將所有新流量指向該機器。然後使用新內容升級您的其他伺服器。當您對新內容感到滿意時,將所有流量重新指向主伺服器。這樣做的另一個好處是不需要維護頁面。