中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何?優化apache服務器性能

發布時間:2021-01-06 11:35:37 來源:億速云 閱讀:195 作者:小新 欄目:建站服務器

小編給大家分享一下如何優化apache服務器性能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

優化apache服務器性能的五種技巧:

一、始終將Apache更新到其最新版本

毫無疑問,安裝最新版本的Apache可能是您需要考慮的第一件事。截至2015年11月19日,CentOS 7存儲庫中最新版本的Apache 為2.4.6,而Debian中的最新版本為2.4.10。
但是,最近可能會有一個改進或錯誤修復添加到新發布的穩定版本中,然后可以從源代碼下載和安裝。此處還提供了編譯和安裝說明- 請記住,如果選擇此更新方法,則可能需要備份當前配置文件/站點/虛擬主機作為預防措施。

可以按如下方式檢查當前安裝的版本:

# httpd -v [基于RedHat / CentOS的系統]
# apache2 -v [基于Debian / Ubuntu的系統]

如何?優化apache服務器性能

根據經驗,除非沒有其他方法,否則請堅持使用所選發行版的包管理器提供的更新方法(yum update httpd或者aptitude safe-upgrade apache2,分別用于CentOS或Debian)。

二、如果您使用的是早于2.4的內核,請考慮立即升級

為什么?內核版本2.4及更高版本默認啟用sendfile內核系統調用。反過來,這有助于高性能網絡文件傳輸(在Web服務器 - 客戶端通信的上下文中需要),并通過執行同時讀取和發送操作,使Apache能夠更快地提供靜態內容并降低CPU利用率。

可以使用以下命令查看當前安裝的內核:

# uname -r

如何?優化apache服務器性能

雖然這是一個不適合初學者的過程,但升級內核是一項有趣的練習,可以了解有關Linux內部的更多信息。

三、選擇最適合您情況的多處理模塊(MPM)

實際上,MPM通過允許您決定如何配置Web服務器以綁定到計算機上的網絡端口,接受來自客戶端的請求以及使用子進程(以及線程,或者)來處理此類請求,從而擴展了Apache的模塊化功能。

從版本2.4開始,Apache提供三種不同的MPM供您選擇,具體取決于您的需求:

該preforkMPM使用多個子進程,不必穿線。每個進程一次處理一個連接,而不為每個進程創建單獨的線程。在沒有詳細說明的情況下,我們可以說,只有在調試使用或者應用程序需要處理非線程安全模塊(如mod_php)的應用程序時,才會使用此MPM。
該workerMPM使用每個子進程,每個線程處理一次一個連接多個線程。對于高流量服務器來說,這是一個不錯的選擇,因為它允許使用比前一種情況更少的RAM來處理更多的并發連接。
最后,eventMPM是2.4版及更高版本的大多數Apache安裝中的默認MPM。它類似于worker MPM,它還為每個子進程創建多個線程但有一個優點:它導致KeepAlive或空閑連接(當它們保持在該狀態時)由單個線程處理,從而釋放可以釋放的內存被分配給其他線程。此MPM不適合與非線程安全模塊(如mod_php)一起使用,必須使用替換此類PHP-FPM。

要檢查Apache安裝使用的MPM,您可以執行以下操作:

# httpd -V

下圖顯示此特定Web服務器正在使用prefork MPM。

如何?優化apache服務器性能

要更改此設置,您需要編輯:

/etc/httpd/conf.modules.d/00-mpm.conf [基于RedHat / CentOS的系統]
/etc/apache2/mods -available/ load [基于Debian / Ubuntu的系統]

其中可以是mpm_event,mpm_worker或mpm_prefork。

并取消注釋加載所需模塊的行,如下所示:

#LoadModule mpm_event_module modules/mod_mpm_event.so
修改為:
LoadModule mpm_event_module modules/mod_mpm_event.so

注意:要使事件MPM在Debian中工作,您可能必須從非自由存儲庫安裝libapache2-mod-fastcgi包。

另外,對于CentOS,你需要php-fpm(以及fcgi和mod_fcgid),而在Debian中它叫做php5-fpm(和apache2-mpm-event一起)。

最后,但并非最不重要的是,重新啟動Web服務器和新安裝的php-fpm(或php5-fpm)服務:

在RedHat / CentOS上

# systemctl restart httpd php-fpm && systemctl enable httpd php-fpm

在Debian / Ubuntu上

# systemctl restart apache2 php5-fpm && systemctl enable apache2 php5-fpm

雖然您可以將Apache設置為使用特定的MPM,但可以按照前面所述的相同方式在每個虛擬主機的基礎上覆蓋該配置。

只需將相應的標簽放入每個虛擬主機的配置文件中即可開始使用 - 但請確保每個虛擬主機使用一個且只有一個MPM。

最后,請注意,無論您選擇的發行版如何,php-fpm都依賴于FastCGI的實現,這就是為什么我之前推薦了額外的軟件包安裝的原因。

有關php-fpm的更多詳細信息和示例以及它如何與事件MPM一起提高Apache的性能,您應該參考官方文檔。

這是我在上一張圖片所示的同一個框中將默認MPM從prefork更改為event后所看到的:

如何?優化apache服務器性能

在CentOS 7中,您需要確保通過防火墻啟用了http和https服務,并且網絡接口已正確添加到默認區域。

例如:

# firewall-cmd --zone = internal --add-interface = tun6to4
# firewall-cmd --zone = internal --add-interface = tun6to4 --permanent
# firewall-cmd --set-default-zone = internal
# firewall-cmd --add-service = http
# firewall-cmd --add-service = https
# firewall-cmd --add-service = http --permanent
# firewall-cmd --add-service = https --permanent
# firewall-cmd --reload

我提出這個問題的原因是因為我最近遇到了一個問題,即云VPS 中的默認firewalld配置設置阻止了php-fpm和Apache處理php文件。

作為一個基本的測試(我相信你可以想到更復雜或更緊張的),我將創建一個php文件,檢查是否存在另外test.php兩個CentOS 7服務器的同一目錄中具有相同硬件特性和負載的文件但是與不同的MPM。其中一個將使用事件,另一個將使用prefork:

如何?優化apache服務器性能

這是我保存到名為的文件的PHP代碼checkiffileexists.php:

<?PHP
$ filename =‘test.php’;
if(file_exists($ filename)){
echo“文件$ filename存在”;
} else {
echo“文件$ filename不存在”;
}
?>

然后我們將運行Apache基準測試工具(ab),同時發出200個請求,直到2000個請求完成:

# ab -k -c 100 -n 2000 localhost/checkiffileexists.php

讓我們運行測試并比較結果。注意性能統計:

如何?優化apache服務器性能

正如您所看到的,帶有事件的服務器的性能在此測試的每個方面都高于其prefork對應物。

四、明智地為Apache分配RAM

也許最重要的硬件項是要為每個Apache進程分配的RAM量。雖然您無法直接控制它,但您可以通過MaxRequestWorkers指令(以前在Apache 2.2中稱為MaxClients)限制子進程的數量,這將限制Apache對RAM的使用。同樣,您可以在每個主機或每個虛擬主機的基礎上設置此值。

要做到這一點,你應該注意Apache使用的平均RAM量,然后乘以MaxRequestWorkers的數量,這就是為Apache進程分配的內存量。您從不希望Web服務器做的一件事是開始使用swap,因為這會顯著降低其性能。因此,您應始終將Apache的RAM使用限制在您能夠承受的范圍內,并且永遠不要依賴交換。

例如,以下塊將同時客戶端的數量限制為30。如果有更多客戶端訪問主機,他們可能會遇到延遲或暫時故障,可以通過刷新瀏覽器輕松解決。雖然這可能被認為是不合需要的,但它對于服務器來說更健康,從長遠來看,對您的網站也是最好的。

您可以將此塊放在內部,/etc/httpd/conf/httpd.conf或者/etc/apache2/apache2.conf取決于您使用的是CentOS還是Debian。

請注意,同樣的原則適用于所有MPM - 我在此處使用事件繼續前面提示中概述的概

如何?優化apache服務器性能

五、了解您的應用程序

根據經驗,您不應加載任何非嚴格需要的Apache模塊才能運行。這至少需要了解服務器上運行的應用程序的全部知識,特別是如果您是系統管理員并且還有另一個負責開發的團隊。

您可以列出當前加載的模塊:

# httpd -M [基于RedHat / CentOS的系統]
# apache2ctl -M [基于Debian / Ubuntu的系統]

要卸載/禁用CentOS中的模塊,您需要注釋掉以LoadModule開頭的行(在主配置文件中或在/etc/httpd/conf.modules.d中的輔助文件中)。

另一方面,Debian提供了一個名為a2dismod的工具來禁用模塊,其用法如下:

# a2dismod module_name

要啟用它:

# a2enmod module_name

在任何一種情況下,請記住重新啟動Apache以使更改生效。

總結
在本文中,我們回顧了5個技巧,這些技巧將幫助您調整Apache Web服務器并提高其性能。此外,您應該記住,沒有安全性的優化和性能是沒有意義的,因此您可能需要參考安裝mod_pagespeed來改進Web服務器性能以及Tecmint.com中的Apache強化技巧文章。

看完了這篇文章,相信你對“如何優化apache服務器性能”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌云县| 双柏县| 博湖县| 晋州市| 汉川市| 昔阳县| 阿拉尔市| 巴彦县| 鄂托克旗| 鱼台县| 五寨县| 惠安县| 垣曲县| 韩城市| 濮阳县| 曲沃县| 天峻县| 盐边县| 旬阳县| 民县| 霍城县| 台中县| 永靖县| 内丘县| 扶余县| 文水县| 宜兴市| 九龙城区| 阜新市| 平度市| 峨边| 贡嘎县| 江陵县| 五大连池市| 阜城县| 任丘市| 龙州县| 太湖县| 滦南县| 江门市| 盐津县|