以下是Debian LNMP中Nginx的配置技巧,涵盖性能、安全及优化等方面:
基础参数调优
worker_processes auto;:自动匹配CPU核心数。worker_cpu_affinity auto;:自动绑定CPU核心,减少跨核调度开销。worker_rlimit_nofile 65535;:提升文件描述符上限,需同步修改系统限制。use epoll;:启用Linux高效事件模型,支持高并发。传输与缓存优化
sendfile on;:开启零拷贝文件传输,减少CPU消耗。tcp_nopush on;:配合sendfile优化数据包传输。keepalive_timeout 65; keepalive_requests 100000;:长连接复用,降低TCP握手开销。expires和Cache-Control头缓存图片、CSS等静态文件。PHP-FPM协同优化
fastcgi_read_timeout(如300秒),适配PHP脚本执行时间。fastcgi_buffer_size和fastcgi_buffers,优化PHP响应缓冲。基础安全配置
server_tokens off;:隐藏Nginx版本信息,降低被针对性攻击的风险。limit_except GET POST { deny all; }。add_header X-Frame-Options "SAMEORIGIN";:防止点击劫持。add_header X-XSS-Protection "1; mode=block";:启用XSS防护。访问控制与加密
allow/deny限制敏感目录访问。return 301 https://$host$request_uri;)。防攻击策略
limit_req_zone + limit_req防止DDoS/暴力破解。limit_conn_zone限制单个IP的并发连接数。SameSite属性限制Cookie跨站发送。虚拟主机管理
/etc/nginx/sites-available/和/etc/nginx/sites-enabled/管理多站点,避免单配置文件冗余。server {
listen 80;
server_name example.com;
root /var/www/example;
location / { try_files $uri $uri/ =404; }
}
日志与监控
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;。ngx_http_stub_status_module):stub_status on;,用于监控连接数和请求状态。系统级优化
sysctl -p生效):net.core.somaxconn=65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_max_syn_backlog=65535
nginx -t测试语法正确性,再systemctl reload nginx重启服务。gzip压缩(若后端已压缩),或调整压缩级别(gzip_comp_level 1-9,数值越小越快)。以上配置参考自,可根据实际业务需求调整参数。