在CentOS系统中优化Web服务器配置可以显著提高性能和安全性。以下是一些常见的优化步骤和建议:
确保你的CentOS系统和所有相关软件都是最新的。
sudo yum update -y
CentOS默认使用Apache或Nginx。根据你的需求选择合适的服务器:
编辑/etc/httpd/conf/httpd.conf或/etc/httpd/conf.d/目录下的配置文件。
KeepAlive:启用KeepAlive可以减少TCP连接的建立和关闭次数。
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
MPM(Multi-Processing Module):选择合适的MPM模块,如event或worker。
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>
压缩:启用Gzip压缩减少传输数据量。
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
编辑/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下的配置文件。
Worker Processes:设置与CPU核心数相同的worker进程数。
worker_processes auto;
KeepAlive:启用KeepAlive减少TCP连接的建立和关闭次数。
keepalive_timeout 65;
keepalive_requests 100;
Gzip:启用Gzip压缩减少传输数据量。
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
编辑/etc/security/limits.conf文件,增加文件描述符的限制。
* soft nofile 65535
* hard nofile 65535
使用缓存可以显著提高性能。
Apache:使用mod_cache和mod_expires模块。
LoadModule cache_module modules/mod_cache.so
LoadModule expires_module modules/mod_expires.so
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 week"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Nginx:使用proxy_cache模块。
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
}
防火墙:使用firewalld或iptables配置防火墙规则。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
SSL/TLS:使用Let’s Encrypt或其他证书颁发机构获取SSL/TLS证书,并配置Nginx或Apache使用HTTPS。
top、htop、iostat、netstat等监控服务器性能。通过以上步骤,你可以显著优化CentOS系统中的Web服务器配置,提高性能和安全性。