Apache-2.2

如何配置 apache httpd 以在特定 URL 上以空正文回答 HTTP 200?

  • January 26, 2021

對於我們的環境,我們應該檢查可用性 Apache httpd 伺服器。我們不想在 documentRoot 中為其創建和清空頁面,並且我們無法使用 mod_status(安全原因)。

是否有任何選項可以將 apache 配置為始終在特定 URL 上回答 HTTP 200?像:

<location /heart_beat.html>
  Return 200
</location>

Apache 2.2(mod_ssl、mod_proxy、虛擬主機)

顯而易見的解決方案是在您的配置中創建一個別名,並將您的空狀態頁面放在文件根目錄之外,這樣它就不會與您的 CMS 或網站管理員可能創建的 URL 衝突。

# Unlikely URL used by loadbalancer for polling
Alias /sdfjkleruiwbns/dfasdfhasdfjkggfhjfgasqeuryuwerpvbbv/ /var/www/loadbalancer/

關於負載均衡器的輪詢:

負載均衡器將定期輪詢後端伺服器。輪詢的結果將確定後端伺服器是否健康,負載均衡器是否將請求發送到給定的伺服器。

支持的最基本監控是簡單的 TCP 連接檢查,以確定服務是否正在偵聽連接。通常,該測試不是 100% 可靠的,因為當實際應用程序無響應時,偵聽器仍然處於活動狀態的情況並不少見。

對 Web 服務更好的檢查是檢索實際的 URL,即http://server.local/some/path/page.htm,當可以檢索到該 URL 時,負載平衡器認為節點處於活動狀態。

與靜態 HTML 相比,動態健康頁面更好,但這可能需要/支持更多的自定義。如果一切正常,則返回綠燈並返回 HTTP 狀態 200,否則發送帶有橙色或紅色燈的 HTTP 狀態 503。然後,健康頁面通常會檢查是否滿足執行應用程序所需的所有條件,例如它可以寫入臨時空間、連接到後端數據庫、許可證有效、未達到最大隊列長度等等等等。只要輪詢該健康頁面當然不會導致有效的拒絕服務……

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