以下是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
,数值越小越快)。以上配置参考自,可根据实际业务需求调整参数。