参考资料

  1. Nginx静态资源服务器搭建详细说明以及案例
  2. Nginx配置文件详细说明以及案例
  3. PHP-FPM绑定本机所有IP详细说明以及案例
  4. Nginx 启动、停止、重启、加载配置详细说明以及案例
  5. Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例
  6. Nginx核心配置指令详细说明以及案例
  7. Nginxgzip开启压缩及相关配置详细说明以及案例
  8. nginx 配置ssl

如何使用Nginx模块增强安全性?

  1. 限制HTTP方法

location / {
    limit_except GET POST {
        deny all;
    }
}
  1. 禁用服务器信息

server_tokens off;
  1. 添加安全头

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
  1. 启用HTTPS重定向

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}
  1. 限制客户端上传大小

client_max_body_size 1M;
  1. 启用Basic认证

location /admin {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
  1. 防止目录遍历

location ~* \.(env|log|htaccess)$ {
    deny all;
}
  1. 限制IP访问

location /api {
    allow 192.168.1.0/24;
    deny all;
}
  1. 启用CSP策略

add_header Content-Security-Policy "default-src 'self'";
  1. 禁用不必要的HTTP方法

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 405;
}