CentOS Apache數(shù)據(jù)庫(kù)處理盡可能的加快PHP的執(zhí)行速度
CentOS Apache對(duì)于電腦使用的玩家的常用軟件,然后我就學(xué)習(xí)及深入的研究CentOS Apache,在這里和大家一起探討CentOS Apache的使用方法,希望對(duì)大家有用。試了一段時(shí)間的Lighttpd,表現(xiàn)的確不錯(cuò),原先用CentOS Apache只能跑到6K/S,改用Lighttpd后性能提升了將近一倍.
只是跑PHP似乎很不穩(wěn)定,數(shù)據(jù)庫(kù)處理時(shí)間長(zhǎng)一點(diǎn)就會(huì)到導(dǎo)致Lighttpd出現(xiàn)500的錯(cuò)誤,也就是說(shuō)要想使Lighttpd發(fā)揮更好的性能,除了優(yōu)化程序還是優(yōu)化程序,盡可能的加快PHP的執(zhí)行速度,另外加上eAccelerator性能會(huì)有更大的提高。
說(shuō)了這么多優(yōu)點(diǎn),再來(lái)說(shuō)說(shuō)公司最近所嘗試的一些經(jīng)驗(yàn),PHP程序已被優(yōu)化的不能再優(yōu)化了,但是有時(shí)候操作一下數(shù)據(jù)庫(kù)(比如執(zhí)行mysqldump)就會(huì)出現(xiàn)500錯(cuò)誤,并發(fā)量非常大的時(shí)候很容易出現(xiàn).
在這點(diǎn)上Lighttpd的表現(xiàn)就沒有CentOS Apache穩(wěn)定了,所以想了一個(gè)折中的辦法,讓CentOS Apache來(lái)處理PHP程序,其他的靜態(tài)頁(yè)面(包括圖片、軟件等等)全都交給Lighttpd來(lái)處理。而實(shí)現(xiàn)方法就是通過(guò)mod_proxy來(lái)實(shí)現(xiàn),CentOS Apache做前端處理或Lighttpd做前端處理都行,反正這2種都有個(gè)mod_proxy模塊,基本上一樣。
下面就以CentOS 4.4系統(tǒng)下使用CentOS Apache(80端口)和Lighttpd(81端口)實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面的分離。CentOS Apache采用系統(tǒng)默認(rèn)安裝(yum install apache)的即可,網(wǎng)上的安裝文檔也很多,偶就不再介紹了。
安裝Lighttpd v1.4.13
- # yum install pcre-devel
- # cd /usr/local/src
- # wget http://www.lighttpd.net/download/lighttpd-1.4.13.tar.gz
- # tar -zxvf lighttpd-1.4.13.tar.gz
- # cd lighttpd-1.4.13
- # ./configure --with-pcre
- # make
- # make install
- # cd doc
- # cp sysconfig.lighttpd /etc/sysconfig/lighttpd
- # cp rc.lighttpd.redhat /etc/init.d/lighttpd
- # chkconfig lighttpd on
- # mkdir -p /etc/lighttpd
- # cp lighttpd.conf /etc/lighttpd/
- # mkdir /var/log/lighttpd
- # touch /var/log/lighttpd/access.log
- # touch /var/log/lighttpd/error.log
- # chown -R apache:apache /var/log/lighttpd
- # vi /etc/init.d/lighttpd
- 將lighttpd=”/usr/sbin/lighttpd”改為lighttpd=”/usr/local/sbin/lighttpd”
編輯Lighttpd的配置文件lighttpd.conf,大致修改如下:
- server.modules = ("mod_access", "mod_simple_vhost", "mod_accesslog" )
- server.document-root = "/var/www/html"
- server.errorlog = "/var/log/lighttpd/error.log"
- accesslog.filename = "/var/log/lighttpd/access.log"
- server.port = 81
- server.bind = “l(fā)ocalhost”
- simple-vhost.server-root = “/var/www/html/”
- simple-vhost.default-host = “”
- simple-vhost.document-root = “/”
- server.username = “apache”
- server.groupname = “apache”
至此Lighttpd基本上已經(jīng)配置完成了,執(zhí)行/etc/init.d/lighttpd start就開始監(jiān)聽81端口了。接下來(lái)就配置CentOS Apache,所要做的就是開啟mod_rewrite和mod_proxy模塊,大致修改如下:
- LoadModule rewrite_module modules/mod_rewrite.so
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
- <VirtualHost *:80>
- ServerAdmin <a href="mailto:webmaster@sofee.cn">webmaster@sofee.cn</a>
- DocumentRoot /var/www/html/test.sofee.cn
- ServerName test.sofee.cn
- <IfModule mod_rewrite.c>
- RewriteEngine On
- # RewriteLog logs/rewrite_log
- # RewriteLogLevel 1
- RewriteRule "^/((.*).(js|css|htm|html|swf|gif|jpg|png|ico|exe|zip|rar))$" "http://0.0.0.0:81/$1" [P,QSA,L]
- RewriteRule "^/(.*)" "$0" [L]
- </IfModule>
- <IfModule mod_proxy.c>
- ProxyRequests Off
- ProxyPreserveHost On
- ProxyReceiveBufferSize 16384
- ProxyTimeout 300
- ProxyPassReverse / http://0.0.0.0:81/
- </IfModule>
- </VirtualHost>
至此,CentOS Apache也已配置完成,執(zhí)行/etc/init.d/httpd start開始監(jiān)聽80端口。為了使mod_proxy能夠發(fā)揮更好的性能,還可以加 入mod_cache模塊:
- LoadModule cache_module modules/mod_cache.so
- LoadModule disk_cache_module modules/mod_disk_cache.so
- LoadModule mem_cache_module modules/mod_mem_cache.so
- <IfModule mod_cache.c>
- <IfModule mod_mem_cache.c>
- CacheEnable mem /
- MCacheSize 10240
- MCacheMaxObjectCount 100
- MCacheMinObjectSize 1
- MCacheMaxObjectSize 2048
- </IfModule>
- <IfModule mod_disk_cache.c>
- CacheRoot /var/cache/mod_proxy
- CacheEnable disk /
- CacheDirLevels 5
- CacheDirLength 3
- </IfModule>
- </IfModule>
【編輯推薦】