Linux
ec2 實例總是在大約 60 秒內超時?
為什麼我訪問 http 或 https 時,我的 ec2 實例總是在大約 60 秒後超時?大約 60 秒後總是返回:
網路錯誤 (tcp_error)
發生通信錯誤:“操作超時” Web 伺服器可能已關閉、太忙或遇到其他問題,使其無法響應請求。您可能希望稍後再試一次。
如需幫助,請聯繫您的網路支持團隊。
有時會返回:
網關超時
網關沒有收到來自更新伺服器或應用程序的及時響應。
我使用最大超時的 apache web 伺服器和 PHP。我沒有在我的 EC2 中使用 ELB/負載均衡器,也從未創建任何 ELB。我試圖在網際網路上找到解決方案,但總是找到 ELB 設置。
根據這篇文章,我只需要執行下面的命令
/sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
我試過但沒有工作,但在我編輯
/etc/sysctl.conf
並添加以下程式碼後:net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
然後我重新啟動了我的實例,現在超時時間更長了。
在您的 apache/vhost 配置中,您需要將 Timeout 指令設置為所需的超時值。
https://httpd.apache.org/docs/2.4/mod/core.html#timeout
說明:伺服器在請求失敗之前等待某些事件的時間量
語法:TimeOut 秒
預設值:TimeOut 60
上下文:伺服器配置,虛擬主機