無需存取設定檔即可找出 Apache 指令設定的值?

無需存取設定檔即可找出 Apache 指令設定的值?

我正在對一個時間敏感的文件上傳應用程式進行故障排除,並懷疑該問題可能是由於 Apache 的KeepAliveTimeout指令造成的。剛剛致電託管支援並詢問他們的設定是什麼。他們告訴我「這不是公開資訊」。我可以透過 shell 存取共享託管伺服器。

搜尋httpd.conf未成功而終止。

有沒有辦法在無法存取的情況下找出指令值的值是什麼httpd.conf

答案1

嘗試httpd -V。這將告訴你 Apache 在哪裡尋找設定檔。您正在尋找類似的東西:

-D SERVER_CONFIG_FILE="conf/httpd.conf"

有一個顯示設定的選項,但目前它不是很有用:-S Show the settings as parsed from the config file (currently only shows the virtualhost settings).

如果您有權存取虛擬主機設置,那麼您可以TimeOut自行設定:

http://httpd.apache.org/docs/2.2/mod/core.html#timeout

希望有幫助。

答案2

Apache 和 NGinx 都使用 5 分鐘作為預設的 keepalive 逾時。

您很可能無權訪問該資訊 - 它將包含在伺服器的設定檔中 - 如果託管公司位於遠端,客戶通常無法存取該資訊。您也許可以使用 nmap 等簡單的網路工具來找到哪個伺服器。

您可能可以使用 telnet:

telnet host 80

一旦進入 telnet 嘗試:

get / HTTP/1.0

在回應中尋找行開頭

Server:

您可以使用“ps ax”列出伺服器的進程 - 您可能會也可能不會得到完整的清單。 Apache 現在顯示為 apache2 或 httpd,取決於作業系統的風格。

使用curl,您可以製作一個命令列來執行保活超時並以某種方式證明它。不幸的是,我現在對那會是什麼樣子感到茫然。

相關內容