5个优化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的系统]
根据经验,除非没有其他方法,否则请坚持使用所选发行版的包管理器提供的更新方法(yum update httpd或者aptitude safe-upgrade apache2,分别用于CentOS或Debian)。
二、如果您使用的是早于2.4的内核,请考虑立即升级
为什么?内核版本2.4及更高版本默认启用sendfile内核系统调用。反过来,这有助于高性能网络文件传输(在Web服务器 - 客户端通信的上下文中需要),并通过执行同时读取和发送操作,使Apache能够更快地提供静态内容并降低CPU利用率。
可以使用以下命令查看当前安装的内核:
# uname -r
虽然这是一个不适合初学者的过程,但升级内核是一项有趣的练习,可以了解有关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。
要更改此设置,您需要编辑:
/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后所看到的:
在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:
这是我保存到名为的文件的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
让我们运行测试并比较结果。注意性能统计:
正如您所看到的,带有事件的服务器的性能在此测试的每个方面都高于其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模块才能运行。这至少需要了解服务器上运行的应用程序的全部知识,特别是如果您是系统管理员并且还有另一个负责开发的团队。
您可以列出当前加载的模块:
# 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教程
Atas ialah kandungan terperinci 5个优化apache服务器性能的技巧. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Clothoff.io
Penyingkiran pakaian AI

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

1. 2. Prestasi tinggi memerlukan pergantungan pada cache (redis), pengoptimuman pangkalan data, CDN dan giliran tak segerak; 3. Keselamatan mesti dilakukan dengan penapisan input, perlindungan CSRF, HTTPS, penyulitan kata laluan dan kawalan kebenaran; 4. Pengiklanan pilihan wang, langganan ahli, ganjaran, komisen, pembayaran pengetahuan dan model lain, terasnya adalah untuk memadankan nada komuniti dan keperluan pengguna.

Peranan utama homebrew dalam pembinaan persekitaran MAC adalah untuk memudahkan pemasangan dan pengurusan perisian. 1. Homebrew secara automatik mengendalikan kebergantungan dan merangkumi kompilasi kompleks dan proses pemasangan ke dalam arahan mudah; 2. Menyediakan ekosistem pakej perisian bersatu untuk memastikan penyeragaman lokasi pemasangan perisian dan konfigurasi; 3. Mengintegrasikan fungsi pengurusan perkhidmatan, dan dengan mudah boleh memulakan dan menghentikan perkhidmatan melalui brewservices; 4. Menaik taraf dan penyelenggaraan perisian yang mudah, dan meningkatkan keselamatan dan fungsi sistem.

Direktori akar web lalai Apache adalah/var/www/html dalam kebanyakan pengagihan Linux. Ini kerana pelayan Apache menyediakan fail dari direktori akar dokumen tertentu. Jika konfigurasi tidak disesuaikan, sistem seperti Ubuntu, CentOS, dan Fedora menggunakan/var/www/html, manakala macOS (menggunakan homebrew) biasanya/usr/local/var/www, dan windows (xampp) adalah c: \ xampp \ htdocs; Untuk mengesahkan laluan semasa, anda boleh menyemak fail konfigurasi Apache seperti httpd.conf atau apache2.conf, atau buat p dengan phpinfo ()

Dayakan HSTS untuk memaksa pelayar untuk mengakses laman web melalui HTTPS, meningkatkan keselamatan. 1. Untuk membolehkan HTTPS di Apache, anda mesti mengkonfigurasi HTTPS terlebih dahulu, dan kemudian menambah tajuk tindak balas keselamatan-pengangkutan yang ketat dalam fail konfigurasi tapak atau .htaccess; 2. Untuk mengkonfigurasi maksimum (seperti 31536000 saat), termasuk parameter preload; 3. Pastikan modul mod_headers diaktifkan, jika tidak dijalankan sudoa2enmodheaders dan mulakan semula Apache; 4. Anda boleh mengemukakan pilihan ke senarai HSTSpreload, tetapi ia mesti memenuhi kedua -dua tapak utama dan sokongan subdomain HTTPS.

Untuk membolehkan perkhidmatan PHP melewati firewall Windows 11, anda perlu membuat peraturan masuk untuk membuka port atau program yang sepadan. 1. Tentukan pelabuhan bahawa PHP sebenarnya mendengar. Jika pelayan terbina dalam dimulakan dengan PHP-Slocalhost: 8000, port adalah 8000. Jika menggunakan Apache atau IIS, biasanya 80 atau 443. 3. Pilih Benarkan Sambungan, periksa fail konfigurasi rangkaian yang berkenaan, namakan peraturan dan tambahkan keterangan. Alamat IP yang dibenarkan untuk mengakses, seperti rangkaian tempatan atau IP tertentu, boleh dihadkan melalui skop. Keselamatan

Untuk menyelesaikan masalah ketidakkonsistenan antara persekitaran dan pengeluaran PHP, terasnya adalah menggunakan keupayaan kontena dan orkestra Kubernetes untuk mencapai konsistensi alam sekitar. Langkah -langkah khusus adalah seperti berikut: 1. Membina imej Docker bersatu, termasuk semua versi PHP, sambungan, kebergantungan dan konfigurasi pelayan web untuk memastikan imej yang sama digunakan dalam pembangunan dan pengeluaran; 2. Gunakan konfigurasi dan rahsia Kubernetes untuk menguruskan konfigurasi yang tidak sensitif dan sensitif, dan mencapai penukaran fleksibel konfigurasi persekitaran yang berbeza melalui gunung volum atau suntikan pembolehubah persekitaran; 3. Memastikan konsistensi tingkah laku aplikasi melalui fail definisi penyebaran Kubernet yang bersatu (seperti penggunaan dan perkhidmatan) dan termasuk dalam kawalan versi; 4.

Langkah -langkah untuk memasang Apache di Ubuntu atau Debian termasuk: 1. Kemas kini pakej perisian sistem untuk memastikan sumber perisian terkini; 2. Jalankan sudoaptininstallapache2 untuk memasang perkhidmatan Apache dan periksa status berjalannya; 3. Konfigurasikan firewall untuk membolehkan trafik HTTP/HTTPS; 4. Laraskan laluan fail laman web, ubah suai konfigurasi atau aktifkan modul yang diperlukan; 5. Mulakan semula perkhidmatan Apache selepas mengubah suai konfigurasi dan berkuatkuasa. Seluruh proses adalah mudah dan langsung, tetapi anda perlu memberi perhatian kepada perkara -perkara utama seperti tetapan kebenaran, peraturan firewall dan pelarasan konfigurasi untuk memastikan bahawa Apache berfungsi secara normal dan boleh mengakses halaman lalai melalui penyemak imbas.

Bagi pemaju Vue, projek atau templat siap berkualiti tinggi adalah alat yang berkuasa untuk memulakan projek baru dengan cepat dan mempelajari amalan terbaik. Artikel ini telah memilih pelbagai portal sumber produk siap Vue dan navigasi laman web untuk membantu anda mencari penyelesaian front-end yang anda perlukan dengan cekap, sama ada sistem pengurusan belakang, perpustakaan komponen UI, atau templat untuk senario perniagaan tertentu, anda boleh mendapatkannya dengan mudah.
