在CentOS系统中,LNMP指的是Linux、Nginx、MySQL和PHP的组合。要优化Nginx配置,可以遵循以下步骤:
调整工作进程:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf
,找到worker_processes
指令,将其设置为等于CPU的核心数。这样可以确保Nginx充分利用硬件资源。
worker_processes auto; # 或者设置为CPU核心数,例如 4
调整连接数:
在events
块中,可以设置每个worker进程允许的最大并发连接数。
events {
worker_connections 1024; # 可以根据需要调整这个值
}
启用Gzip压缩:
在http
块中,启用Gzip压缩可以减少网络传输的数据量,加快页面加载速度。
http {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
静态文件缓存: 对于静态文件,可以设置缓存以减少对磁盘的访问。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
关闭不必要的模块: 在编译Nginx时,可以关闭不需要的模块以减少Nginx的内存占用。
使用keepalive:
在http
块中,启用keepalive可以复用TCP连接,减少连接建立和关闭的开销。
http {
keepalive_timeout 65;
keepalive_requests 100;
}
优化SSL/TLS设置: 如果使用HTTPS,可以通过优化SSL/TLS设置来提高安全性并减少资源消耗。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
错误页面和日志: 自定义错误页面可以提升用户体验,同时合理配置日志级别和日志文件大小有助于监控和故障排查。
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
安全设置: 限制访问日志的大小,防止日志文件过大影响性能。
access_log /var/log/nginx/access.log combined buffer=32k flush=300s;
使用TCP nodelay和TCP nopush: 这些选项可以优化TCP协议的使用。
tcp_nopush on;
tcp_nodelay on;
在调整配置后,不要忘记重新加载或重启Nginx服务以应用更改:
sudo nginx -s reload
或者
sudo systemctl reload nginx
请注意,优化是一个持续的过程,可能需要根据实际的应用场景和流量模式进行调整。在生产环境中应用任何更改之前,建议在测试环境中进行充分的测试。