中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Apache優(yōu)化配置文件詳細(xì)教程

2018-09-20    來源:愛站科技

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  今天小編跟大家分享一篇關(guān)于Apache優(yōu)化配置文件詳細(xì)教程,感興趣的朋友跟小編一起來了解一下吧!

  (1) Timeout 該參數(shù)指定Apache在接收請求或發(fā)送所請求內(nèi)容之前的最長等待時間(秒),若超過該時間Apache則放棄處理該請求,并釋放連接。該參數(shù)默認(rèn)值為120,推薦設(shè)置為60,對于訪問量較大的網(wǎng)站可以設(shè)置為30。

  (2) KeepAlive 該參數(shù)控制Apache是否允許在一個連接中有多個請求,默認(rèn)打開。但對于大多數(shù)論壇類型站點(diǎn)來說,通常設(shè)置為off以關(guān)閉該支持。

  (3) MPM - prefork.c 在默認(rèn)情況下Apache使用Prefork(進(jìn)程)工作模式,可以說這部分的參數(shù)設(shè)置是對Apache性能影響的核心和關(guān)鍵。用戶可以在配置文檔中找到以下配置段:

  CODE:

  StartServers 5

  MinSpareServers 5

  MaxSpareServers 10

  MaxClients 15

  MaxRequestsPerChild 0

  這就是控制Apache進(jìn)程工作的配置段,為了更好的理解上述配置中的各項參數(shù),下面讓我們先了解一下Apache是如何控制進(jìn)程工作的。我們知道,在Unix系統(tǒng)中,很多服務(wù)(Service)的守護(hù)進(jìn)程(Daemon)在啟動時會創(chuàng)建一個進(jìn)程以準(zhǔn)備應(yīng)答可能的連接請求,服務(wù)即進(jìn)入了端口監(jiān)聽狀態(tài),當(dāng)一個來自客戶端(Client)的請求被發(fā)送至服務(wù)所監(jiān)聽的端口時,該服務(wù)進(jìn)程即會處理該請求,在處理過程中,該進(jìn)程處于獨(dú)占狀態(tài),也就是說如果此時有其他請求到達(dá),這些請求只能“排隊”等待當(dāng)前請求處理完成且服務(wù)進(jìn)程釋放。這樣就會導(dǎo)致越來越多的請求處于隊列等待狀態(tài),實際表現(xiàn)就是該服務(wù)處理能力非常低下。Apache使用Prefork模式很好的解決了這一問題。下面我們來看看Apache實際上是如何高效率工作的。

  當(dāng)Apache啟動時,Apache會啟動StartSpareServers個空閑進(jìn)程同時準(zhǔn)備接收處理請求,當(dāng)多個請求到來時,StarSpareServers進(jìn)行會越來越少,當(dāng)空閑進(jìn)程減少到MinSpareServers個時,Apache為了能夠繼續(xù)有充裕的進(jìn)程處理請求,它會再啟動StartsServers個進(jìn)程備用,這樣就大大減少了請求隊列等待的可能,使得服務(wù)效率提高,這也是為什么叫做Pre-fork的原因;讓我們繼續(xù)跟蹤Apache的工作,我們假設(shè)Apache已經(jīng)啟動了200個進(jìn)程來處理請求,理論上來說,此時Apache一共有205個進(jìn)程,而過了一段時間,假設(shè)有100個請求都得到了Apache的響應(yīng)和處理,那么此時這100個進(jìn)程就被釋放成為空閑進(jìn)程,那么此時Apache有105個空閑進(jìn)程。而對于服務(wù)而言,啟動太多的空閑進(jìn)程時沒有任何意義的,反而會降低服務(wù)器的整體性能,那么Apache真的會有105個空閑進(jìn)程么?當(dāng)然不會!實際上Apache隨時在檢查自己,當(dāng)發(fā)現(xiàn)有超過MaxSpareServers個空閑進(jìn)程時,則會自動停止關(guān)閉一些進(jìn)程,以保證空閑進(jìn)程不過過多。說到這里,用戶應(yīng)該對Apache的工作方式有了一定的了解,如果想獲得更多更詳細(xì)的說明請參閱Apache手冊文檔。 我們還有兩個參數(shù)沒有介紹:MaxClients和MaxRequestPerchild;MaxClients指定Apache在同一時間內(nèi)最多允許有多少客戶端能夠與其連接,如果超過MaxClients個連接,客戶端將會得到一個“服務(wù)器繁忙”的錯誤頁面。我們看到默認(rèn)情況下MaxClients設(shè)置為15,這對一些中型站點(diǎn)和大型站點(diǎn)顯然是遠(yuǎn)遠(yuǎn)不夠的!也許您需要同時允許512個客戶端連接才能滿足應(yīng)用需求,好吧,那么就讓我們把MaxClients修改為512,保存httpd.conf并退出,重啟Apache,很遺憾,在重啟過程當(dāng)中您看到了一些錯誤提示,Apache重啟失敗。錯誤提示中告訴您MaxClients最大只能設(shè)定為256,相信您一定很失望。不過不要沮喪,Apache作為世界一流的Web Server一定不會如此單薄的!在默認(rèn)情況下,MaxClients的確只能設(shè)定為不超過256的整數(shù),但是,如果您有需要完全可以隨意定制,此時就需要使用ServerLimit參數(shù)來配合使用,簡單的說ServerLimit就像是水桶,而MaxClients就像是水,您可以通過更換更大的水桶(將ServerLimit設(shè)定為一個較大值)來容納更多的水(MaxClients),但要注意,MaxClients的設(shè)定數(shù)值是不能大于ServerLimit的設(shè)定數(shù)值的!

  下面讓我們了解一下MaxRequestPerChild參數(shù),該參數(shù)指定一個連接進(jìn)程中可以有多少個線程同時工作。也許這樣解釋過于專業(yè),那么您只要想想“網(wǎng)絡(luò)螞蟻”、“網(wǎng)際快車FlashGet”中的“多點(diǎn)同時下載”即可,該參數(shù)實際上就是限制最多可以用幾個“點(diǎn)”。默認(rèn)設(shè)置為0,即為:不限制。但需要注意,如果將該值設(shè)置的過小會引起訪問問題,如果沒有特殊需要或者訪問量壓力并非很大可以保持默認(rèn)值,如果訪問量很大則推薦設(shè)置為2048。

  好了,解釋了這么多,讓我們看看經(jīng)過修改后Perfork.c配置段的推薦配置:

  CODE:

  StartServers 5

  MinSpareServers 5

  MaxSpareServers 10

  ServerLimit 1024

  MaxClients 768

  MaxRequestsPerChild 0

  完成了上述對Apache的調(diào)整,Apache已經(jīng)獲得了較大的性能改善。記住,在修改任何參數(shù)后都需要重啟Apache才能生效的。有關(guān)Apache的優(yōu)化遠(yuǎn)遠(yuǎn)不止這些,有興趣的用戶可以閱讀Apache手冊文檔或者尋找一些文獻(xiàn)資料學(xué)習(xí)。

  2. PHP優(yōu)化對于PHP的優(yōu)化主要是對php.ini中的相關(guān)主要參數(shù)進(jìn)行合理調(diào)整和設(shè)置,以下我們就來看看php.ini中的一些對性能影響較大的參數(shù)應(yīng)該如何設(shè)置。

  CODE:

  # vi /etc/php.ini

  (1) PHP函數(shù)禁用找到:

  CODE:

  disable_functions =

  該選項可以設(shè)置哪些PHP函數(shù)是禁止使用的,PHP中有一些函數(shù)的風(fēng)險性還是相當(dāng)大的,可以直接執(zhí)行一些系統(tǒng)級腳本命令,如果允許這些函數(shù)執(zhí)行,當(dāng)PHP程序出現(xiàn)漏洞時,損失是非常嚴(yán)重的!以下我們給出推薦的禁用函數(shù)設(shè)置:

  CODE:

  disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status

  需注意:如果您的服務(wù)器中含有一些系統(tǒng)狀態(tài)檢測的PHP程序,則不要禁用shell_exec,proc_open,proc_get_status等函數(shù)。

  (2) PHP腳本執(zhí)行時間找到:

  CODE:

  max_execution_time = 30

  該選項設(shè)定PHP程序的最大執(zhí)行時間,如果一個PHP腳本被請求,且該P(yáng)HP腳本在max_execution_time時間內(nèi)沒能執(zhí)行完畢,則PHP不再繼續(xù)執(zhí)行,直接給客戶端返回超時錯誤。沒有特殊需要該選項可保持默認(rèn)設(shè)置30秒,如果您的PHP腳本確實需要長執(zhí)行時間則可以適當(dāng)增大該時間設(shè)置。

  (3) PHP腳本處理內(nèi)存占用找到:

  CODE:

  memory_limit = 8M

  該選項指定PHP腳本處理所能占用的最大內(nèi)存,默認(rèn)為8MB,如果您的服務(wù)器內(nèi)存為1GB以上,則該選項可以設(shè)置為12MB以獲得更快的PHP腳本處理效率。

  (4) PHP全局函數(shù)聲明找到:

  CODE:

  register_globals = Off

  網(wǎng)絡(luò)上很多關(guān)于PHP設(shè)置的文章都推薦將該選項設(shè)置為On,其實這是一種及其危險的設(shè)置方法,很可能引起嚴(yán)重的安全性問題。如果沒有特殊的需要,強(qiáng)烈推薦保留默認(rèn)設(shè)置!

  (5) PHP上傳文件大小限制找到:

  CODE:

  upload_max_filesize = 2M

  該選項設(shè)定PHP所能允許最大上傳文件大小,默認(rèn)為2MB。根據(jù)實際應(yīng)用需求,可以適當(dāng)增大該設(shè)置。

  (6) Session存儲介質(zhì)找到:

  CODE:

  session.save_path

  如果你的PHP程序使用Session對話,則可以將Session存儲位置設(shè)置為/dev/shm,/dev/shm是Linux系統(tǒng)獨(dú)有的TMPFS文件系統(tǒng),是以內(nèi)存為主要存儲方式的文件系統(tǒng),比RAMDISK更優(yōu)秀,因為可以使用DISKSWAP作為補(bǔ)充,而且是系統(tǒng)自帶的功能模塊,不需要另行配置。想想看,從磁盤IO操作到內(nèi)存操作,速度會快多少?只是需要注意,存儲在/dev/shm的數(shù)據(jù),在服務(wù)器重啟后會全部丟失。不過這對于Session來說是無足輕重的。

  以上就是關(guān)于Apache優(yōu)化配置文件詳細(xì)教程,想必都了解了吧,更多相關(guān)內(nèi)容請繼續(xù)關(guān)注愛站技術(shù)頻道。

標(biāo)簽: linux swap 安全 服務(wù)器 服務(wù)器內(nèi)存 腳本 漏洞 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:配置Sysctl優(yōu)化服務(wù)器的詳細(xì)教程

下一篇:LINUX系統(tǒng)雙線接入服務(wù)器詳細(xì)教程