這個(gè)配置實(shí)例是我自己摸索出來(lái)的。
服務(wù)器的生產(chǎn)環(huán)境是 apache+mpmworker+fastcgi。利用cpanel主機的/scripts/easyapache腳本可以很方便地安裝必要的組件。但是默認安裝好的配置并不能很好的運用于生產(chǎn)環(huán)境,根據網(wǎng)站的負載不同,你可能需要手動(dòng)修改一些關(guān)鍵的配置文件,這也正是我做的。
MPM模塊的引進(jìn)是apache2.0版本開(kāi)始最重大的改進(jìn)之一,MPM常見(jiàn)的模式是prefork和worker,很奇怪,在cpanel服務(wù)器的web控制端,默認配置prefork模式,因此,如果你要使用MPMworker,需要手動(dòng)修改http.conf,一個(gè)典型的prefork配置是這樣的:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
prefork模式可以提高apache的并發(fā)能力,對于大內存的服務(wù)器來(lái)說(shuō)是apache和cpanel官方推薦的方法,實(shí)際我用了worker模式,它對內存的使用更加經(jīng)濟,刪掉類(lèi)似上面的prefork模式,以worker模式取而代之:
下一步是對fastcgi的配置。fastcgi是php的一種運行模式,它最大的優(yōu)點(diǎn)就是大大提高了php腳本的執行效率,但它的配置也是最復雜的,事實(shí)上,你應該根據網(wǎng)站的實(shí)際流量和服務(wù)器的現有資源,控制fastcgi的進(jìn)程數,尤其要注意及時(shí)殺死空閑僵死的fastcgi進(jìn)程,以收回內存。cpanel服務(wù)器的配置文件是/etc/httpd/conf/php.conf,我的配置如下:
因為服務(wù)器的生產(chǎn)環(huán)境是用于虛擬主機托管,因此會(huì )產(chǎn)出許多(超過(guò)100不稀奇)個(gè)php(運行于fastcgi模式)的進(jìn)程,以上的配置的優(yōu)點(diǎn)是能夠較好的回收內存,對有較多數量網(wǎng)站,而大部分的流量并不高的生產(chǎn)環(huán)境是一種效率和穩定性之間的折中。即使做了上述的配置,實(shí)際內存的使用也往往接近3GB。
因此,你可以另外通過(guò)cronjob的方法,定時(shí)殺死php進(jìn)程,回收內存,比如每小時(shí)殺死一次:
最后,是mysql的配置,數據庫的配置可以是一件非常復雜的事情,不了解的人請不要照抄我的配置:
set-variable = key_buffer_size=256M
set-variable = thread_concurrency=16
set-variable = max_connections=200
set-variable = table_cache=256
set-variable = max_delayed_threads=20
set-variable = max_tmp_tables=128
set-variable = query_cache_type=1
set-variable = query_cache_size=16M
set-variable = thread_cache_size=16
聯(lián)系客服