教程 nginx tutorial

反向代理 Node.js 应用

Nginx 常用于反向代理 Node.js 应用,实现请求转发、负载均衡和安全控制。

一、基本反向代理配置

nginx
upstream node_app {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://node_app;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

`

  • upstream:定义后端 Node.js 服务
  • proxy_pass:请求转发到 Node.js
  • 支持 WebSocket,通过 Upgrade 和 Connection 设置

二、负载均衡

nginx
upstream node_app {
    least_conn;
    server 127.0.0.1:3000;
    server 127.0.0.1:3001;
}
  • least_conn:将请求分配给连接数最少的后端,提高负载均衡效果
  • 可根据需求选择 round-robin 或 ip_hash

三、性能优化

  1. 开启缓存和 Gzip 压缩,提高响应速度
  2. 配置 proxy_buffers 和 proxy_timeout,优化大请求传输
  3. 结合负载均衡和健康检查,提高高可用性

四、安全建议

  1. 配置 HTTPS,保障传输安全
  2. 限制请求速率和访问控制,防止恶意请求
  3. 独立日志记录 Node.js 请求,便于调试和监控

通过 Nginx 反向代理 Node.js 应用,可以实现高性能、高可用的 Web 服务架构,同时支持负载均衡和安全控制。