Skip to content

nginx配置示例

conf
# 原有监听 80 端口的 server 块
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    
    # 其它配置
    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

# 复制已有监听 80 端口的 server 块,新增为一个新的 server 块
server {
    # 将原有 listen 80 修改为 listen 80 改为 listen 443 ssl
    listen 443 ssl;
    # 原有 server_name,可继续新增更多当前证书支持的域名
    server_name klydev.top www.klydev.top;
    
    # ======================= 证书配置开始 =======================
    # 指定证书文件(中间证书可以拼接至该pem文件中),请将 /etc/nginx/cert/ssl.pem 替换为您实际使用的证书文件的绝对路径
    ssl_certificate /etc/nginx/cert/ssl.pem;
    # 指定私钥文档,请将 /etc/nginx/cert/ssl.key 替换为您实际使用的私钥文件的绝对路径
    ssl_certificate_key /etc/nginx/cert/ssl.key;
    # 配置 SSL 会话缓存,提高性能
    ssl_session_cache shared:SSL:1m;
    # 设置 SSL 会话超时时间
    ssl_session_timeout 5m;
    # 自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # 指定允许的 TLS 协议版本,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差
    ssl_protocols TLSv1 TLSv1.2 TLSv1.3;
    # 优先使用服务端指定的加密套件
    ssl_prefer_server_ciphers on;
    # ======================= 证书配置结束 =======================
   
    # 其它配置

    location / {
        proxy_pass http://127.0.0.1:3065;
    }

    # 配置反向代理
    location /passport/ {
        proxy_pass https://127.0.0.1:5001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# /etc/nginx/conf.d/node-app.conf
server {
  # 监听端口(HTTP 默认 80,HTTPS 默认 443)
  listen 5001 ssl;
  # 绑定的域名(替换为你的域名)
  server_name klydev.top www.klydev.top;

  # 调整常规请求头缓冲区(根据需求增大,如 4k)
  client_header_buffer_size 4k;

  # 调整超大请求头缓冲区(数量 4,每个 16k,总 64k)
  large_client_header_buffers 4 16k;

  # ======================= 证书配置开始 =======================
  # 指定证书文件(中间证书可以拼接至该pem文件中),请将 /etc/nginx/cert/ssl.pem 替换为您实际使用的证书文件的绝对路径
  ssl_certificate /etc/nginx/cert/ssl.pem;
  # 指定私钥文档,请将 /etc/nginx/cert/ssl.key 替换为您实际使用的私钥文件的绝对路径
  ssl_certificate_key /etc/nginx/cert/ssl.key;
  # 配置 SSL 会话缓存,提高性能
  ssl_session_cache shared:SSL:1m;
  # 设置 SSL 会话超时时间
  ssl_session_timeout 5m;
  # 自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  # 指定允许的 TLS 协议版本,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差
  ssl_protocols TLSv1 TLSv1.2 TLSv1.3;
  # 优先使用服务端指定的加密套件
  ssl_prefer_server_ciphers on;
  # ======================= 证书配置结束 =======================

  # 反向代理到 Node.js 服务
  location / {
    # Node.js 服务地址(本地端口或容器 IP)
    proxy_pass http://localhost:5002; 

    # 传递客户端真实 IP 和请求头(关键!)
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme; # 传递协议(http/https)
  }

  # 可选:静态文件由 Nginx 直接处理(提升性能)
  location /static/ {
    # 静态文件根目录(根据项目路径调整)
    root /works/statics/passport/static; 
    # 禁用缓存(开发环境可选,生产环境建议设置缓存策略)
    expires 30d;
  }

  # 可选:错误页面(如 404、500)
  error_page 404 /404.html;
  location = /404.html {
    root /usr/share/nginx/html;
  }
}

Last updated: