云虛擬主機的CPU或內存使用率過高時會導致網站無法正常訪問,本文介紹這種情況的可能原因和解決方案。
問題現象
在獨享云虛擬主機上成功搭建網站并正常運行一段時間后,訪問網站時出現無法正常訪問的現象。
可能原因
云虛擬主機的站點在網站運行過程中可能被惡意攻擊,或者主機站點的配置文件(例如.htaccess文件)配置錯誤時,使得云虛擬主機的CPU使用率或內存使用率過高,從而導致網站無法正常訪問。
引起網站無法正常訪問的原因較多,本文以主機的CPU或內存使用率過高原因為例進行說明。更多信息,請參見網站訪問問題。
解決方案
本文的解決方案僅適用于獨享云虛擬主機,以普通版Linux操作系統獨享云虛擬主機為例進行詳細介紹。
- 登錄云虛擬主機管理頁面。
找到站點無法訪問的獨享云虛擬主機,單擊對應操作列的管理。
- 在左側導航欄,單擊主機信息。
在監控信息區域,查看云虛擬主機的CPU或內存滿載(即使用率為100%)時的時間段或者時間點。
本圖示以云虛擬主機的CPU使用率達到100%為例,您可以將鼠標移動到CPU監控線上即可看到CPU使用率達到100%時對應的時間點為2023年2月15日10:05:00。
在監控信息區域的按來源IP統計頁簽下,將鼠標移動到CPU滿載時的時間點,即可查看并記錄連接數過高的IP地址或IP網段(即存在異常的IP地址或IP網段)。
(可選)屏蔽異常IP地址。
在左側導航欄,單擊訪問控制。
在IP屏蔽頁簽下,單擊添加IP。
在添加IP頁面的IP區域,輸入待屏蔽的異常IP地址,然后單擊確認。
異常IP地址添加成功后,您可以在IP地址列表中查看到已添加的IP地址。
(可選)限制每個異常IP網段的并發連接數。
在左側導航欄,單擊訪問控制。
單擊連接數限制頁簽。
在連接數限制設置區域根據連接數限制狀態的顯示結果執行以下步驟:
如果顯示關閉 ,單擊[開啟限制]。
如果顯示開啟 ,單擊[修改限制]。
在彈出的開啟限制或修改限制頁面,修改并發連接數限制,并單擊高級配置后修改連接掩碼為24。
例如,如果并發連接數限制設置為10,連接掩碼設置為24時,表示每個C段源IP最多支持10個連接。
單擊確認。
(可選)限制每個異常IP地址的并發連接數。
在左側導航欄,單擊訪問控制。
單擊連接數限制頁簽。
在連接數限制設置區域,單擊[修改限制]。
在彈出的修改限制頁面,修改并發連接數限制,并單擊高級配置后修改連接掩碼為32。
例如,如果并發連接數限制設置為10,連接掩碼設置為32時,表示每個源IP最多支持10個連接。
單擊確認。
在左側導航欄,單擊站點信息,在服務器監控區域查看CPU使用率和內存使用率。
如果查看云虛擬主機的CPU使用率和內存使用率仍然過高,請繼續執行步驟10。
如果查看云虛擬主機的CPU使用率和內存使用率在正常范圍內,操作結束。
說明關于云虛擬主機的CPU使用率和內存使用率是否過高或正常,需要您根據實際業務自行評估。
(可選)檢查.htaccess文件是否配置錯誤,并根據實際需求進行修改。
以檢查普通版Linux操作系統獨享云虛擬主機.htaccess文件的配置為例,具體操作如下所示:
在左側導航欄,選擇 。
單擊站點根目錄,找到.htaccess文件后,然后單擊對應操作列的查看。
檢查并修改.htaccess文件。
例如.htaccess文件的具體內容如下所示:
Options+FollowSymLinks IndexIgnore*/* RewriteEngine on # 目錄如果存在,直接訪問 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 如果目錄不存在,則跳轉到index.php RewriteRule.index.php
檢查上述.htaccess文件,發現
RewriteRule.index.php
配置項會將所有不存在的訪問跳轉到index.php
中,造成網站訪問的持續增多。基于該原因,您可以根據實際需求對RewriteRule.index.php
配置項進行相應修改,或將其注釋。
重要為了有效預防因云虛擬主機的CPU或內存使用率滿載而導致網站無法正常訪問,建議您在云虛擬主機的CPU或內存使用率滿載前,前往主機信息頁面設置自定義監控報警功能。當云虛擬主機的CPU或內存使用率超過報警閾值,您可以在收到監控報警提示時根據本文解決方案進行操作。關于設置自定義監控報警功能的更多信息,請參見獲取云虛擬主機的主機信息和站點信息。