我正在對一個時間敏感的文件上傳應用程式進行故障排除,並懷疑該問題可能是由於 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,您可以製作一個命令列來執行保活超時並以某種方式證明它。不幸的是,我現在對那會是什麼樣子感到茫然。