[LINUX]網頁靜態化的crontab job

有關於電腦系統設定, 備份, 監控, 網路等機制討論
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

[LINUX]網頁靜態化的crontab job

文章 tim »

實作網站流量大的頁面靜態化作法.

由於某些網站活動會有大量訪問量, 對於動態的頁面訪問資料庫造成較大的效能衝擊, 為能有效減少這個效能問題, 可以使用靜態化特定頁面供提昇效能, 以容納更多訪問量, 或避免無法訪問的困境.

程式如下:

代碼: 選擇全部

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
多多留言, 整理文章, 把經驗累積下來.....
回覆文章