禁用服务器标记:隐藏Nginx版本信息
server_tokens off;
限制HTTP方法:只允许必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
禁用目录列表:
autoindex off;
使用强加密套件:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers on;
启用HSTS:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
nginx
client_max_body_size 10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
IP白名单:
location /admin {
allow 192.168.1.0/24;
deny all;
}
禁用敏感文件访问:
location ~* \.(env|log|htaccess)$ {
deny all;
}
启用Gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
启用缓存:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
调整连接参数:
keepalive_timeout 65;
keepalive_requests 100;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
启用TCP优化:
tcp_nopush on;
tcp_nodelay on;
nginx
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public, no-transform";
}
启用HTTP/2:
listen 443 ssl http2;
调整工作进程:
worker_processes auto;
worker_rlimit_nofile 100000;
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
启用访问日志和错误日志:
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
定期检查Nginx配置:
nginx -t
使用fail2ban防止暴力破解:
apt install fail2ban
定期更新Nginx:
apt update && apt upgrade nginx
通过实施这些优化措施,您可以显著提高Nginx服务器的安全性和性能。根据您的具体需求和环境,可能需要调整某些参数值。