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;
}
}