主题
反向代理 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
三、性能优化
- 开启缓存和 Gzip 压缩,提高响应速度
- 配置
proxy_buffers和proxy_timeout,优化大请求传输 - 结合负载均衡和健康检查,提高高可用性
四、安全建议
- 配置 HTTPS,保障传输安全
- 限制请求速率和访问控制,防止恶意请求
- 独立日志记录 Node.js 请求,便于调试和监控
通过 Nginx 反向代理 Node.js 应用,可以实现高性能、高可用的 Web 服务架构,同时支持负载均衡和安全控制。