溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Apache服務(wù)器的優(yōu)化方法

發(fā)布時(shí)間:2021-09-03 09:21:33 來(lái)源:億速云 閱讀:146 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要講解了“Apache服務(wù)器的優(yōu)化方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Apache服務(wù)器的優(yōu)化方法”吧!


ExtendedStatus On 因?yàn)閷?xiě)入額外的時(shí)間標(biāo)志,設(shè)off。
MPM:worker-多進(jìn)程多線程新型設(shè)計(jì),適合高流量服務(wù),但是不穩(wěn)定,對(duì)象php之類支持非常差,不推薦, prefork-穩(wěn)定,無(wú)線程,占用較多內(nèi)存。
HostnameLookups off 關(guān)掉,這樣少一dns查詢,日志處理可以另外用軟件。
注釋LoadMoule指令中不要的模塊。
一般說(shuō)來(lái),不需要的模塊包括:

代碼如下:


LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
#比如:需要在~/username/下調(diào)試php可以將
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
#cgi程序用到,象awstats之類需要用到
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so


上面只是我總結(jié)的部分用不到的,有大俠指點(diǎn)一下還有那些可以不要....
文件夾Directory的選項(xiàng)的優(yōu)化Options Indexes Includes FollowSymLinks ExecCGI
AllowOverride None
ExecCGI 允許執(zhí)行 CGI 腳本。如果該選項(xiàng)沒(méi)有設(shè)置,則 CGI 腳本將不能執(zhí)行。如果沒(méi)有必要最好不要開(kāi)啟,有可能會(huì)有安全性問(wèn)題.
Includes 允許服務(wù)器端包含。服務(wù)器端包含允許一個(gè) HTML 文件包含其他文件。這個(gè)平時(shí)用不到,他要檢查每個(gè)html所以不要開(kāi)啟.
IncludesNOEXEC 允許服務(wù)器端包含,但 CGI 腳本中的 #exec 和 #include 指令無(wú)效。不常用,關(guān)掉
Indexes 如果 DirectoryIndex (如 index.html) 在請(qǐng)求的目錄沒(méi)存在的話,按一定方式顯示目錄內(nèi)容列表.這個(gè)用的太多了,開(kāi)啟吧.
FollowSymLinks 最好關(guān)掉符號(hào)連接,Apache就必須執(zhí)行額外的系統(tǒng)調(diào)用以驗(yàn)證符號(hào)連接。文件名的每一個(gè)組成部分都需要一個(gè)額外的調(diào)用.當(dāng)打開(kāi)這個(gè)選項(xiàng)時(shí),Apache 將檢查每個(gè)請(qǐng)求中是否包含對(duì)符號(hào)連接的引用,這將對(duì)請(qǐng)求中包含的每個(gè)路徑調(diào)用一次lstat()系統(tǒng)調(diào)用。在請(qǐng)求"/index.html" 時(shí),Apache將對(duì)"/www"、"/www/htdocs"、"/www/htdocs/index.html"執(zhí)行l(wèi)stat()調(diào)用。而且 lstat()的執(zhí)行結(jié)果不被緩存,因此對(duì)每一個(gè)請(qǐng)求都要執(zhí)行一次。除非你準(zhǔn)備使用符號(hào)連接,否則用 Options -FollowSymLinks 來(lái)關(guān)掉它。 用一個(gè)破折號(hào)引導(dǎo),從而禁用此指令。
AllowOverride  這個(gè)選項(xiàng),是開(kāi)啟如包括htaccess來(lái)進(jìn)行權(quán)限控制,Apache必需首先在當(dāng)前目錄中查找是否存在這個(gè)文件,如果存在就解析這個(gè)文件并在當(dāng)前目錄中應(yīng)用文件中的設(shè)置。更壞的是,Apache不僅要查看當(dāng)前的目錄,還要查看當(dāng)前目錄的所有上層目錄是否包括htaccess文件以根據(jù)所有這些文件最終確定設(shè)置。例如請(qǐng)求"/index.html",則Apache會(huì)試圖打開(kāi)"/.htaccess"、"/www/.htaccess"、"/www /htdocs/.htaccess"。其解決方法 AllowOverride None來(lái)關(guān)掉,當(dāng)然,這樣做靜態(tài)化就只能寫(xiě)在VH的配置中了,禁用后設(shè)置文件僅在服務(wù)器啟動(dòng)時(shí)解析一次 。
DirectoryIndex index*,不要使用通配符,全用完整列表,如irectoryIndex index.cgi index.pl index.shtml index.html。當(dāng)然,最少好些,明確的指定設(shè)置文件列表,放在最前最合理。
啟用了持久鏈接Keepalive,這樣子進(jìn)程將保持忙碌狀態(tài)以等待被打開(kāi)連接上的新請(qǐng)求。如果開(kāi)啟KeepAliveTimeout的默認(rèn)值被設(shè)置為5秒。最好不要大于60秒。
禁用日志
寫(xiě)入日志信息是一個(gè)很花費(fèi)時(shí)間的工作,盡管Apache保持日志文件的打開(kāi)狀態(tài)以節(jié)省打開(kāi)文件的時(shí)間,但仍然得花費(fèi)不少的時(shí)間。如果沒(méi)有必要存儲(chǔ)日志信息,你可以關(guān)閉這個(gè)選項(xiàng)以節(jié)省出更多的處理器時(shí)間,只需要在設(shè)置文件中把日志那一行注釋掉就可以關(guān)掉它。當(dāng)然,實(shí)在需要,最要加入另一個(gè)單盤(pán)來(lái)管理日志存儲(chǔ).

靜態(tài)內(nèi)容方面
如果你的WEB服務(wù)器使用了大量靜態(tài)內(nèi)容或者你分別用兩個(gè)WEB服務(wù)器處理動(dòng)態(tài)和靜態(tài)內(nèi)容,那么你現(xiàn)在的主要目標(biāo)就是縮短服務(wù)器發(fā)送被請(qǐng)求內(nèi)容的響應(yīng)時(shí)間,最簡(jiǎn)單的方法就是使用mod_cache緩存模塊。你可以使用mod_disk_cache和mod_mem_cache來(lái)分別提供基于磁盤(pán)的緩存和基于內(nèi)存的緩存。
優(yōu)化動(dòng)態(tài)內(nèi)容
動(dòng)態(tài)內(nèi)容可能是所有WEB服務(wù)器中最消費(fèi)時(shí)間的部分,特別是使用CGI的時(shí)候,一個(gè)簡(jiǎn)單的程序都可能會(huì)把響應(yīng)時(shí)間增加好幾秒。
使用基于腳本的方案的一大好處是它們?cè)贏pache里裝入了解釋器,這就減少了執(zhí)行時(shí)再裝入解釋器的時(shí)間,一些方案還把解析過(guò)的腳本緩存起來(lái),這樣下一次遇到同樣的請(qǐng)求就可以直接執(zhí)行而無(wú)需再次解析。當(dāng)然也可以應(yīng)用的服務(wù)分離,象使用php的fastcgi來(lái)在后面跑,前面給Web服務(wù)器.
對(duì)特定系統(tǒng)的調(diào)整優(yōu)化很復(fù)雜而且很花時(shí)間,而且你需要調(diào)整特定的腳本以利用優(yōu)化的成果。
不過(guò)對(duì)動(dòng)態(tài)內(nèi)容的優(yōu)化效果是非常明顯的,僅僅是把perl腳本的執(zhí)行模式從CGI轉(zhuǎn)到mod_perl就可以減少多達(dá)70%的執(zhí)行時(shí)間,如果我們進(jìn)一步,還可以使用到數(shù)據(jù)庫(kù)的持久連接或在多次請(qǐng)求之間緩存信息,這對(duì)電子商務(wù)網(wǎng)站非常有用,它也減小了不同請(qǐng)求間重復(fù)裝載信息的開(kāi)銷。
總的來(lái)講,網(wǎng)站的動(dòng)態(tài)內(nèi)容腳本和CGI是影響網(wǎng)站性能的最重要方面(所以好的程序員很重要),如果你管理一個(gè)典型的Apache服務(wù)器你會(huì)發(fā)現(xiàn)Apache響應(yīng)一個(gè)傳入連接以及最后把內(nèi)容發(fā)送給客戶的所花費(fèi)的時(shí)間是以毫秒記的,而等待所需數(shù)據(jù)資源的時(shí)間常常達(dá)到幾秒鐘。
其它優(yōu)化

可以把 Apache(httpd)的優(yōu)先級(jí)改為 -15,這已經(jīng)接近上限(優(yōu)先級(jí)從最高的 -20 到最低的 19)??梢詮拿钚惺褂眠@兩個(gè)實(shí)用程序:
* 要想停止現(xiàn)有服務(wù)并以優(yōu)先級(jí) -15 重新啟動(dòng)它,可以發(fā)出命令 nice -15 httpd
* 要想避免停止服務(wù),可以發(fā)出命令 renice -15 -p 1996
這里的差異是 renice 需要進(jìn)程 ID(或 pid)。如上所述,可以使用 top 查明 pid。nice 和 renice 是很靈活的程序
配置mod_expires模塊(這個(gè)非常有用的優(yōu)化哦)
mod_expires可以減少20-30%左右的重復(fù)請(qǐng)求,讓重復(fù)的用戶對(duì)指定的頁(yè)面請(qǐng)求結(jié)果都CACHE在本地,根本不向服務(wù)器發(fā)出請(qǐng)求。除開(kāi)用戶有發(fā)送no-cache才會(huì)更新,但要注意更新快的文件不要這么做.
mod_expires的安裝配置:

代碼如下:


ExpiresActive On
ExpiresDefault A60
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A60


其實(shí)還有一個(gè)壓縮,我就不寫(xiě)了,見(jiàn)我另外的那個(gè)文章>
http://www.php-oa.com/2008/08/20/gzipsquid.html 壓縮比率可以高到70%,非常有用的.
另外高速的web服務(wù),就可以把noatime參數(shù)加入/etc/fstab文件中
lnux文件系統(tǒng)當(dāng)文件被訪問(wèn),創(chuàng)建,更新的時(shí)候會(huì)保留紀(jì)錄。默認(rèn)的,當(dāng)文件讀寫(xiě)操作的時(shí)候,系統(tǒng)會(huì)更新last-time-read屬性。因?yàn)閷?xiě)操作是比較耗費(fèi)資源的操作,減少不必要的i/o可以整體上提高磁盤(pán)性能。
在掛接文件系統(tǒng)的時(shí)候,加入noatime參數(shù)可以禁止inode節(jié)點(diǎn)訪問(wèn)時(shí)間的修改。如果文件更新時(shí)間對(duì)于特定的應(yīng)用不是很重要的話,比如web服務(wù),就可以把noatime參數(shù)加入/etc/fstab文件中
比如:
/dev/sdb1 /mountlocation ext3 defaults,noatime 1 2
推薦利用單獨(dú)的分區(qū)作為掛接點(diǎn)并打開(kāi)noatime開(kāi)關(guān)
也可以關(guān)掉的服務(wù)(這個(gè)好象誰(shuí)都明白),apmd,autofs,cups,hpoj.isdn,pcmcia,rhnsd,sendmail,xfs(字體服務(wù))
打開(kāi)重用TCP/IP中的time-wait套接
sysctl -w net.ipv4.tcp_tw_reuse=1
啟動(dòng)TIME-WAIT 套接字狀態(tài)的快速循環(huán)功能
sysctl =w net.ipv4.tcp_tw_recycle=1

這個(gè)一些個(gè)人的總結(jié),加上一些前輩的經(jīng)驗(yàn), 下面的優(yōu)化總的來(lái)講,在我使用的一年多中,還是相當(dāng)有用的,優(yōu)化和不優(yōu)化還是比較明顯的.
下面開(kāi)始正題

ExtendedStatus On 因?yàn)閷?xiě)入額外的時(shí)間標(biāo)志,設(shè)off。
MPM:worker-多進(jìn)程多線程新型設(shè)計(jì),適合高流量服務(wù),但是不穩(wěn)定,對(duì)象php之類支持非常差,不推薦, prefork-穩(wěn)定,無(wú)線程,占用較多內(nèi)存。
HostnameLookups off 關(guān)掉,這樣少一dns查詢,日志處理可以另外用軟件。

注釋LoadMoule指令中不要的模塊。
一般說(shuō)來(lái),不需要的模塊包括:
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
#比如:需要在~/username/下調(diào)試php可以將
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
#cgi程序用到,象awstats之類需要用到
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so
上面只是我總結(jié)的部分用不到的,有大俠指點(diǎn)一下還有那些可以不要….
文件夾Directory的選項(xiàng)的優(yōu)化
Options Indexes Includes FollowSymLinks ExecCGI
AllowOverride None
ExecCGI 允許執(zhí)行 CGI 腳本。如果該選項(xiàng)沒(méi)有設(shè)置,則 CGI 腳本將不能執(zhí)行。如果沒(méi)有必要最好不要開(kāi)啟,有可能會(huì)有安全性問(wèn)題.
Includes 允許服務(wù)器端包含。服務(wù)器端包含允許一個(gè) HTML 文件包含其他文件。這個(gè)平時(shí)用不到,他要檢查每個(gè)html所以不要開(kāi)啟.
IncludesNOEXEC 允許服務(wù)器端包含,但 CGI 腳本中的 #exec 和 #include 指令無(wú)效。不常用,關(guān)掉
Indexes 如果 DirectoryIndex (如 index.html) 在請(qǐng)求的目錄沒(méi)存在的話,按一定方式顯示目錄內(nèi)容列表.這個(gè)用的太多了,開(kāi)啟吧.
FollowSymLinks 最好關(guān)掉符號(hào)連接,Apache就必須執(zhí)行額外的系統(tǒng)調(diào)用以驗(yàn)證符號(hào)連接。文件名的每一個(gè)組成部分都需要一個(gè)額外的調(diào)用.當(dāng)打開(kāi)這個(gè)選項(xiàng)時(shí),Apache將檢查每個(gè)請(qǐng)求中是否包含對(duì)符號(hào)連接的引用,這將對(duì)請(qǐng)求中包含的每個(gè)路徑調(diào)用一次lstat()系統(tǒng)調(diào)用。在請(qǐng)求"/index.html"時(shí),Apache將對(duì)"/www"、"/www/htdocs"、"/www/htdocs/index.html"執(zhí)行l(wèi)stat()調(diào)用。而且lstat()的執(zhí)行結(jié)果不被緩存,因此對(duì)每一個(gè)請(qǐng)求都要執(zhí)行一次。除非你準(zhǔn)備使用符號(hào)連接,否則用 Options -FollowSymLinks 來(lái)關(guān)掉它。 用一個(gè)破折號(hào)引導(dǎo),從而禁用此指令。
AllowOverride  這個(gè)選項(xiàng),是開(kāi)啟如包括htaccess來(lái)進(jìn)行權(quán)限控制,Apache必需首先在當(dāng)前目錄中查找是否存在這個(gè)文件,如果存在就解析這個(gè)文件并在當(dāng)前目錄中應(yīng)用文件中的設(shè)置。更壞的是,Apache不僅要查看當(dāng)前的目錄,還要查看當(dāng)前目錄的所有上層目錄是否包括htaccess文件以根據(jù)所有這些文件最終確定設(shè)置。例如請(qǐng)求"/index.html",則Apache會(huì)試圖打開(kāi)"/.htaccess"、"/www/.htaccess"、"/www/htdocs/.htaccess"。其解決方法 AllowOverride None來(lái)關(guān)掉,當(dāng)然,這樣做靜態(tài)化就只能寫(xiě)在VH的配置中了,禁用后設(shè)置文件僅在服務(wù)器啟動(dòng)時(shí)解析一次 。

DirectoryIndex index*,不要使用通配符,全用完整列表,如:DirectoryIndex index.cgi index.pl index.shtml index.html。當(dāng)然,最少好些,明確的指定設(shè)置文件列表,放在最前最合理。

啟用了持久鏈接Keepalive,這樣子進(jìn)程將保持忙碌狀態(tài)以等待被打開(kāi)連接上的新請(qǐng)求。如果開(kāi)啟KeepAliveTimeout的默認(rèn)值被設(shè)置為5秒。最好不要大于60秒。

禁用日志
寫(xiě)入日志信息是一個(gè)很花費(fèi)時(shí)間的工作,盡管Apache保持日志文件的打開(kāi)狀態(tài)以節(jié)省打開(kāi)文件的時(shí)間,但仍然得花費(fèi)不少的時(shí)間。如果沒(méi)有必要存儲(chǔ)日志信息,你可以關(guān)閉這個(gè)選項(xiàng)以節(jié)省出更多的處理器時(shí)間,只需要在設(shè)置文件中把日志那一行注釋掉就可以關(guān)掉它。當(dāng)然,實(shí)在需要,最要加入另一個(gè)單盤(pán)來(lái)管理日志存儲(chǔ).


靜態(tài)內(nèi)容方面
如果你的WEB服務(wù)器使用了大量靜態(tài)內(nèi)容或者你分別用兩個(gè)WEB服務(wù)器處理動(dòng)態(tài)和靜態(tài)內(nèi)容,那么你現(xiàn)在的主要目標(biāo)就是縮短服務(wù)器發(fā)送被請(qǐng)求內(nèi)容的響應(yīng)時(shí)間,最簡(jiǎn)單的方法就是使用mod_cache緩存模塊。你可以使用mod_disk_cache和mod_mem_cache來(lái)分別提供基于磁盤(pán)的緩存和基于內(nèi)存的緩存。

優(yōu)化動(dòng)態(tài)內(nèi)容
動(dòng)態(tài)內(nèi)容可能是所有WEB服務(wù)器中最消費(fèi)時(shí)間的部分,特別是使用CGI的時(shí)候,一個(gè)簡(jiǎn)單的程序都可能會(huì)把響應(yīng)時(shí)間增加好幾秒。
使用基于腳本的方案的一大好處是它們?cè)贏pache里裝入了解釋器,這就減少了執(zhí)行時(shí)再裝入解釋器的時(shí)間,一些方案還把解析過(guò)的腳本緩存起來(lái),這樣下一次遇到同樣的請(qǐng)求就可以直接執(zhí)行而無(wú)需再次解析。當(dāng)然也可以應(yīng)用的服務(wù)分離,象使用php的fastcgi來(lái)在后面跑,前面給Web服務(wù)器.

對(duì)特定系統(tǒng)的調(diào)整優(yōu)化很復(fù)雜而且很花時(shí)間,而且你需要調(diào)整特定的腳本以利用優(yōu)化的成果。

不過(guò)對(duì)動(dòng)態(tài)內(nèi)容的優(yōu)化效果是非常明顯的,僅僅是把perl腳本的執(zhí)行模式從CGI轉(zhuǎn)到mod_perl就可以減少多達(dá)70%的執(zhí)行時(shí)間,如果我們進(jìn)一步,還可以使用到數(shù)據(jù)庫(kù)的持久連接或在多次請(qǐng)求之間緩存信息,這對(duì)電子商務(wù)網(wǎng)站非常有用,它也減小了不同請(qǐng)求間重復(fù)裝載信息的開(kāi)銷。

總的來(lái)講,網(wǎng)站的動(dòng)態(tài)內(nèi)容腳本和CGI是影響網(wǎng)站性能的最重要方面(所以好的程序員很重要),如果你管理一個(gè)典型的Apache服務(wù)器你會(huì)發(fā)現(xiàn)Apache響應(yīng)一個(gè)傳入連接以及最后把內(nèi)容發(fā)送給客戶的所花費(fèi)的時(shí)間是以毫秒記的,而等待所需數(shù)據(jù)資源的時(shí)間常常達(dá)到幾秒鐘。
其它優(yōu)化

配置mod_expires模塊(這個(gè)非常有用的優(yōu)化哦)

mod_expires可以減少20-30%左右的重復(fù)請(qǐng)求,讓重復(fù)的用戶對(duì)指定的頁(yè)面請(qǐng)求結(jié)果都CACHE在本地,根本不向服務(wù)器發(fā)出請(qǐng)求。除開(kāi)用戶有發(fā)送no-cache才會(huì)更新,但要注意更新快的文件不要這么做.

mod_expires的安裝配置:
ExpiresActive On
ExpiresDefault A60
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A60
其實(shí)還有一個(gè)壓縮,我就不寫(xiě)了,見(jiàn)我另外的那個(gè)文章<<Gzip在apache2中的設(shè)置和squid對(duì)它的處理>>
http://www.php-oa.com/2008/08/20/gzipsquid.html 壓縮比率可以高到70%,非常有用的.
另外高速的web服務(wù),就可以把noatime參數(shù)加入/etc/fstab文件中
lnux文件系統(tǒng)當(dāng)文件被訪問(wèn),創(chuàng)建,更新的時(shí)候會(huì)保留紀(jì)錄。默認(rèn)的,當(dāng)文件讀寫(xiě)操作的時(shí)候,系統(tǒng)會(huì)更新last-time-read屬性。因?yàn)閷?xiě)操作是比較耗費(fèi)資源的操作,減少不必要的i/o可以整體上提高磁盤(pán)性能。
在掛接文件系統(tǒng)的時(shí)候,加入noatime參數(shù)可以禁止inode節(jié)點(diǎn)訪問(wèn)時(shí)間的修改。如果文件更新時(shí)間對(duì)于特定的應(yīng)用不是很重要的話,比如web服務(wù),就可以把noatime參數(shù)加入/etc/fstab文件中
比如:
/dev/sdb1 /mountlocation ext3 defaults,noatime 1 2
推薦利用單獨(dú)的分區(qū)作為掛接點(diǎn)并打開(kāi)noatime開(kāi)關(guān)
也可以關(guān)掉的服務(wù)(這個(gè)好象誰(shuí)都明白),apmd,autofs,cups,hpoj.isdn,pcmcia,rhnsd,sendmail,xfs(字體服務(wù))
打開(kāi)重用TCP/IP中的time-wait套接
sysctl -w net.ipv4.tcp_tw_reuse=1
啟動(dòng)TIME-WAIT 套接字狀態(tài)的快速循環(huán)功能
sysctl =w net.ipv4.tcp_tw_recycle=1

感謝各位的閱讀,以上就是“Apache服務(wù)器的優(yōu)化方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Apache服務(wù)器的優(yōu)化方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI