這篇文章帶給大家的內容是關於如何快速排查無法打開 ECS 實例上運行的網站,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
快速檢查無法開啟ECS 實例上執行的網站
#無法開啟Linux 實例上執行的網站
此處示範系統為CentOS 6.8,請依照您的實際情況選擇。
一、檢查 80 連接埠不可用
執行指令 netstat -an | grep 80,查看 TCP 80 連接埠是否已監聽。若傳回下列任一結果,說明已啟動TCP 80 連接埠的Web 服務:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN # 全網監聽
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN # 本機監聽
其中,本機監聽會導致外網無法存取Web 服務只有本機能訪問,可參閱Nginx、Tomcat、IIS 更改連接埠監聽位址的方法修改為全網監聽。
第一步失效時:
查看實例安全性群組是否放行 80 連接埠。請參閱新增安全群組規則。
查看實例 iptables 是否放行 80 連接埠。
使用 telnet 和 traceroute 追蹤 80 連接埠的通斷情況。請參閱 ping 丟包或不通時連結測試說明。
查看雲端伺服器頻寬是否跑滿。請參閱雲端伺服器 ECS Linux 伺服器頻寬異常跑滿分析解決。
二、排查 Web 服務不可用
使用管理終端登入實例。
查看 Web 服務日誌,如路徑 /usr/local/var/log/nginx/ 存放 CentOS 6.8 Nginx 服務日誌。
使用 top 查看實例運行狀態,查看是否有異樣進程。
在控制台查看實例監控訊息,查看實例頻寬是否跑滿,若跑滿,可嘗試升級實例頻寬。
查看實例 CPU/記憶體是否耗盡。參閱雲端伺服器 ECS Linux 系統 CPU 佔用率較高問題排查思路。
查看實例 80 連接埠是否有過多的 TCP 連結。
透過 netstat -anp |grep tcp |wc -l 統計 TCP 連線數。
比較 /etc/sysctl.conf 設定檔的 net.ipv4.tcp_max_tw_buckets 最大值,看是否有超出狀況。若超出:
執行 vi /etc/sysctl.conf 編輯文件,查詢 net.ipv4.tcp_max_tw_buckets 參數。如果確認連線使用量很高,容易超出限制。
調高參數 net.ipv4.tcp_max_tw_buckets,擴大限制。
輸入指令 sysctl -p 使設定生效。
無法開啟 Windows 執行個體上執行的網站
#此處示範系統為 Windows Server 2008,請依照您的實際狀況選擇。
一、檢查 80 連接埠不可用
執行指令 netstat -ano | findstr :80,檢視 TCP 80 是否被監聽。如果傳回下列任一種結果,表示已啟動 TCP 80 連接埠的 Web 服務。
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172 # 表示全網監聽
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 1172 # 表示本地監聽
##其中,本機監聽會導致外網無法存取Web 服務只有本機能訪問,可執行netsh http delete iplisten ipaddress= 127.0.0.1:80 修改為全網監聽。 第一步失效時:查看實例安全性群組是否放行 80 連接埠。請參閱新增安全群組規則。 查看實例防火牆是否放行 80 連接埠。請參閱 Windows 防火牆限制連接埠/IP/應用存取的方法以及例外的設定。 使用 telnet 和 tracert 追蹤 80 連接埠的通斷情況。請參閱 ping 丟包或不通時連結測試說明。 查看雲端伺服器頻寬是否跑滿。請參閱 Windows 實例頻寬和 CPU 跑滿或跑高排查。二、排查 Web 服務不可用
使用管理終端登入實例。 檢視 Web 服務日誌,如 Windows Server 2008 IIS 服務日誌位置為: %SystemDrive%\inetpub\logs\LogFiles\W3SVC4。 透過 Task Manager 查看實例運行狀態,查看是否有異樣進程。 在控制台查看實例監控訊息,查看實例頻寬是否跑滿,若跑滿,可嘗試升級實例頻寬。 查看實例 CPU,記憶體的是否耗盡。請參閱 Windows 執行個體頻寬與 CPU 跑滿或跑高排查或雲端伺服器 Windows 執行個體 CPU 高佔用率的處理及工具建議。 查看實例 80 連接埠是否有過多的 TCP 連結。 執行下列指令並統計TCP 連線數:netstat -n |find /i "time_wait" /c netstat -n |find /i "close_wait" /c netstat -n |find /i "established" /c統計TCP 連線數過高時,調整TcpTimedWaitDelay 為30s,其預設值為4 分鐘(240s):開啟CMD,執行指令regedit。 找到 HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > TCPIP > Parameters。
如果無 TcpTimedWaitDelay 項目參數:
右鍵按 Parameter > 新建 DWORD (32-位元)值。
輸入 TcpTimedWaitDelay,回車確認。
右鍵 TcpTimedWaitDelay,按一下 修改 ,勾選 十進制,數值資料輸入30,按確定。
以上是如何快速排查無法開啟 ECS 執行個體上執行的網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!