Nginx作为反向代理的功能
参考资料
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-serviceapi.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=30s30 秒后重试proxy_next_upstream定义哪些错误触发切换服务器
总结
Nginx 作为反向代理的核心功能包括:
✅ 负载均衡(轮询、权重、IP 哈希)
✅ 请求转发(基于路径或域名)
✅ HTTPS 卸载(SSL 终端)
✅ 缓存加速(减少后端压力)
✅ WebSocket 代理(支持长连接)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-798.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
