由於某些網站活動會有大量訪問量, 對於動態的頁面訪問資料庫造成較大的效能衝擊, 為能有效減少這個效能問題, 可以使用靜態化特定頁面供提昇效能, 以容納更多訪問量, 或避免無法訪問的困境.
程式如下:
代碼: 選擇全部
cd /var/www/tmp
/usr/local/bin/wget http://myweb.com/index-source.php
if grep -q "<!--ok generated at" index-source.php; then
echo "<!--static generated at " `date +%Y-%m-%d\ %T` "-->" >> index-source.php
cp -f index-source.php /var/www/index.php
rm index-source.php
fi
1. 先進到暫存目錄(或工作目錄)
2. 使用 wget (請使用完成路徑)將來源內容存檔 index-source.php (動態檔案)
3. 使用 grep 檢查該存檔內容是否有特定內容, 以本案為例, 在網頁最下方會輸出 <!--ok generated at xxxx -->
4. 若3成立, 則進行附加內容, 使用 date 指令的目前時間
5. 再將該 index-source.php 複製並覆蓋至原來的 index.php (已是靜態檔案)即可
6. 移除暫存的 index-source.php
其中的 index-source.php 或目的檔的 index.php 可以依實際狀況調整.
而其中的 3. 是確保原來的 index-source.php 產出內容是正常的, 才不會取到故障的內容, 又覆蓋上去靜態檔就不好了.
最後再排入 crontab 即可, 如每10分鐘可以寫:
*/10 * * * * /usr/home/someone/getandsave.sh