Nginx作为反向代理的功能
2025-04-14
4
参考资料
Nginx 作为反向代理的功能详解及配置示例
1. 负载均衡
功能:将客户端请求分发到多个后端服务器,提高并发处理能力。
配置示例:
http { upstream backend { server 192.168.1.10:8080 weight=3; # 权重 3 server 192.168.1.11:8080; # 默认权重 1 server 192.168.1.12:8080 backup; # 备用服务器 } server { listen 80; location / { proxy_pass http://backend; } } }
说明:
upstream
定义后端服务器组weight
设置权重(3:1 比例分配请求)backup
标记为备用服务器(仅当主服务器不可用时启用)
2. 请求转发(基于路径或域名)
功能:根据 URL 路径或域名将请求代理到不同的后端服务。
配置示例:
server { listen 80; server_name api.example.com; location /user { proxy_pass http://user-service:8000; } location /order { proxy_pass http://order-service:8001; } }
说明:
api.example.com/user
→ 转发到user-service
api.example.com/order
→ 转发到order-service
3. SSL 终端(HTTPS 卸载)
功能:在 Nginx 上终止 HTTPS 加密,后端服务器使用 HTTP,减少计算负担。
配置示例:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
说明:
Nginx 处理 HTTPS 加密/解密
后端服务器只需运行 HTTP
4. 缓存加速
功能:缓存静态或动态内容,减少后端服务器压力。
配置示例:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { listen 80; location / { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 1h; # 缓存 200 响应 1 小时 proxy_cache_use_stale error timeout updating; } }
说明:
proxy_cache_path
定义缓存存储位置proxy_cache_valid
设置缓存有效期
5. WebSocket 代理
功能:支持 WebSocket 长连接代理。
配置示例:
server { listen 80; location /ws/ { proxy_pass http://websocket-backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
说明:
Upgrade
和Connection
头确保 WebSocket 正常工作
6. 健康检查(自动剔除故障节点)
功能:检测后端服务器状态,自动剔除不可用节点。
配置示例:
upstream backend { server 192.168.1.10:8080 max_fails=3 fail_timeout=30s; server 192.168.1.11:8080 max_fails=3 fail_timeout=30s; } server { listen 80; location / { proxy_pass http://backend; proxy_next_upstream error timeout http_500 http_502; } }
说明:
max_fails=3
允许 3 次失败fail_timeout=30s
30 秒后重试proxy_next_upstream
定义哪些错误触发切换服务器
总结
Nginx 作为反向代理的核心功能包括:
✅ 负载均衡(轮询、权重、IP 哈希)
✅ 请求转发(基于路径或域名)
✅ HTTPS 卸载(SSL 终端)
✅ 缓存加速(减少后端压力)
✅ WebSocket 代理(支持长连接)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。