Skip to content

Nginx配置指南

这是什么?

Nginx就像是一个智能门卫,负责:

  • 🚦 指引用户请求到正确的服务器
  • 🛡️ 保护系统安全
  • 🚀 提升访问速度
  • 📝 记录访问日志

📝 配置示例

nginx
# 定义服务器组
upstream api_upstream {
    ip_hash;                    # 保证同一用户访问同一服务器
    server 10.10.10.10:8000;    # 后端服务器地址
}

# 服务器配置
server {  
    listen  443 ssl;                      # 监听HTTPS请求
    server_name  www.wueasy.com;          # 网站域名
    charset  utf-8;                       # 使用UTF-8编码
    
    # 🔐 SSL证书配置(HTTPS加密)
    ssl_certificate /srv/ssl/wueasy/fullchain.crt;      # 证书文件
    ssl_certificate_key /srv/ssl/wueasy/cert.key;       # 密钥文件
    
    # 🛡️ 安全配置
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;       # 支持的SSL协议版本
    
    # 加密算法配置
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!aNULL:!MD5:!RC4:!DHE;
    
    ssl_ecdh_curve secp384r1;             # 椭圆曲线加密
    ssl_prefer_server_ciphers on;         # 优先使用服务器的加密算法
    ssl_stapling on;                      # 启用OCSP装订
    ssl_stapling_verify on;               # 验证OCSP响应
    ssl_session_cache shared:SSL:10m;     # SSL会话缓存
    ssl_session_timeout 10m;              # SSL会话超时时间
    
    # 📝 访问日志配置
    access_log  /dev/null;                # 关闭访问日志(节省空间)
    
    # ⚠️ 错误页面配置
    error_page    404  /404.html;         # 自定义404页面

    # 🛑 禁止访问敏感接口
    location ~ /actuator {
        deny all;                         # 拒绝所有请求
        return 403;                       # 返回禁止访问
    }

    # 📄 静态文件配置
    location / {
        # 🛡️ 安全响应头
        add_header X-Content-Type-Options "nosniff";     # 防止类型猜测
        add_header X-Frame-Options "SAMEORIGIN";         # 防止点击劫持
        add_header X-XSS-Protection "1; mode=block";     # 防止XSS攻击
        add_header Referrer-Policy "no-referrer";        # 不发送来源信息
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; # 强制HTTPS
        
        root   /srv/html;                               # 静态文件目录
        try_files $uri $uri/ /index.html;               # 支持单页应用
    }
    
    # 🔄 API请求转发
    location /api {
        proxy_pass http://api_upstream;                  # 转发到后端服务器
        client_max_body_size 200M;                      # 最大请求体积
        
        # 传递客户端信息
        proxy_set_header    X-Forwarded-For   $remote_addr;
        proxy_set_header    REMOTE_ADDR       $remote_addr;
        proxy_set_header    X-Real-IP         $remote_addr;
        proxy_set_header    Host              $host;
    }
}

💡 配置说明

1. 基础设置

  • 监听HTTPS(443端口)
  • 使用域名:www.wueasy.com
  • 使用UTF-8编码

2. 安全功能

  • SSL证书配置(HTTPS)
  • 防止XSS攻击
  • 防止点击劫持
  • 强制HTTPS访问
  • 禁止访问敏感接口

3. 性能优化

  • SSL会话缓存
  • 静态文件处理
  • 请求转发

4. 日志处理

  • 访问日志关闭(节省空间)
  • 自定义错误页面

❓ 常见问题

1. HTTPS证书问题

  • ✓ 确认证书文件路径正确
  • ✓ 检查证书是否过期
  • ✓ 验证密钥文件权限

2. 静态文件访问失败

  • ✓ 检查文件目录权限
  • ✓ 确认文件存在
  • ✓ 验证nginx用户权限

3. API转发失败

  • ✓ 检查后端服务是否正常
  • ✓ 确认upstream配置正确
  • ✓ 验证网络连接正常

🎯 最佳实践

  1. 安全建议:

    • 定期更新SSL证书
    • 启用所有安全头
    • 限制请求大小
  2. 性能建议:

    • 启用Gzip压缩
    • 配置浏览器缓存
    • 优化SSL配置

🆘 需要帮助?

如果遇到问题:

  1. 📝 查看nginx错误日志
  2. 🔍 检查nginx配置语法
  3. 🌐 测试后端服务连接
  4. 📋 验证证书配置