0157期:Apache 一些設定技巧
最近在架設 Apache HTTP Server ,慢慢也處理了幾個問題 ,一個是每日的記錄檔換日時 ,如何讓 Apache 的 Server 自動換檔案名稱 ,由於網站通常一開就不太會停下來 ,硬要停下 Apache ,來處裡記錄檔 ,好像也蠻怪的 ,查了一下網路 ,發覺 Apache 本身有提供 rotatelogs 這個公用程式給管理者使用 ,
舉 ErrorLog 為例好了 .
這是我的 http.conf 的設定 .
ErrorLog "|Q:\AppServ\Apache\bin\rotatelogs.exe logs/%y-%m-%d.error.log 86400 480"
86400 是指每 86400 ( 一天的秒數 ) , 480 指 GMT + 8 ( 以分鐘計 , GMT -1 下 -60 ) .這樣 Apache 就會自動在該換日時換一個檔案名稱 ,如果你也是用 Apache 架站 ,可以試看看這個指令 .
第二個問題是網站慢慢負載也變大了 , AppServ 原本設定的 ThreadsPerChild 50 ,我也偶而會看到沒辦法再增加 ,而產生 "Server ran out of threads to serve requests." 的錯誤訊息 ,我把設定改為 250 ,希望能解決這個問題 .
第三個問題則是因為我目前的 Apache 同時有三個 domain 指向不同的網站 ,之前的多網站設定錯誤(我把 *:80 設成分別的 web1:80 , web2:80 , web3:80 ,不過重開機後常常只有一個網站會開的起來 ,其他兩個站台會指到那個唯一的站台 ,後來才發覺多個網站應該是類似這樣的設法才對 .
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web1
ServerName www.web1.com.tw
</VirtualHost>
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web2
ServerName www.web2.tw
</VirtualHost>
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web3
ServerName www.web3.tw
</VirtualHost>
這樣就算重新開機 ,多網站的設定也不會跑掉 .
舉 ErrorLog 為例好了 .
這是我的 http.conf 的設定 .
ErrorLog "|Q:\AppServ\Apache\bin\rotatelogs.exe logs/%y-%m-%d.error.log 86400 480"
86400 是指每 86400 ( 一天的秒數 ) , 480 指 GMT + 8 ( 以分鐘計 , GMT -1 下 -60 ) .這樣 Apache 就會自動在該換日時換一個檔案名稱 ,如果你也是用 Apache 架站 ,可以試看看這個指令 .
第二個問題是網站慢慢負載也變大了 , AppServ 原本設定的 ThreadsPerChild 50 ,我也偶而會看到沒辦法再增加 ,而產生 "Server ran out of threads to serve requests." 的錯誤訊息 ,我把設定改為 250 ,希望能解決這個問題 .
第三個問題則是因為我目前的 Apache 同時有三個 domain 指向不同的網站 ,之前的多網站設定錯誤(我把 *:80 設成分別的 web1:80 , web2:80 , web3:80 ,不過重開機後常常只有一個網站會開的起來 ,其他兩個站台會指到那個唯一的站台 ,後來才發覺多個網站應該是類似這樣的設法才對 .
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web1
ServerName www.web1.com.tw
</VirtualHost>
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web2
ServerName www.web2.tw
</VirtualHost>
<VirtualHost *:80>
DocumentRoot Q:/AppServ/www/web3
ServerName www.web3.tw
</VirtualHost>
這樣就算重新開機 ,多網站的設定也不會跑掉 .
















