nginx 正向代理与反向代理

1. 正向代理(Forward Proxy)

正向代理是指 代理客户端 访问目标服务器,通常用于访问受限资源或隐藏客户端 IP。

工作原理

  1. 客户端请求代理服务器(如 nginx)。
  2. 代理服务器代表客户端向目标网站发起请求。
  3. 目标网站返回内容给代理服务器。
  4. 代理服务器再将内容返回给客户端。

应用场景

  • 科学上网:使用 VPN、代理服务器访问被封锁的网站。
  • 缓存加速:代理服务器缓存资源,提高访问速度(如 Squid)。
  • 匿名访问:隐藏客户端真实 IP,保护隐私。

nginx 配置正向代理

nginx 复制代码
server {
    listen 8080;

    location / {
        proxy_pass http://$http_host$request_uri;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • 客户端需要手动 配置代理(如浏览器或系统代理)。
  • proxy_pass http://$http_host$request_uri; 让代理服务器转发客户端请求到目标服务器。

2. 反向代理(Reverse Proxy)

反向代理是指 代理服务器 代表 后端服务器 处理客户端请求,常用于负载均衡和安全防护。

工作原理

  1. 客户端向代理服务器(nginx)发送请求。
  2. 代理服务器转发请求到后端服务器(如 backend.example.com)。
  3. 后端服务器处理请求,并返回给代理服务器。
  4. 代理服务器再将结果返回给客户端。

应用场景

  • 负载均衡:分发请求到多个后端服务器,提高性能。
  • 隐藏后端:避免直接暴露后端服务器,提高安全性。
  • SSL 终结:nginx 处理 HTTPS,再用 HTTP 访问后端,减少后端加密开销。
  • 缓存优化:nginx 作为缓存层,提高响应速度。

nginx 配置反向代理

nginx 复制代码
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

upstream backend_servers {
    server 192.168.1.100:8080;
    server 192.168.1.101:8080;
}
  • 代理服务器 无需 客户端配置,用户只访问 example.com
  • proxy_pass http://backend_servers; 让 nginx 将请求转发到后端服务器。
  • upstream 定义多个后端服务器,实现负载均衡。

3. 正向代理 vs 反向代理

对比项 正向代理(Forward Proxy) 反向代理(Reverse Proxy)
代理对象 代理 客户端 访问外部资源 代理 后端服务器 处理请求
主要用途 科学上网、缓存加速、隐私保护 负载均衡、隐藏后端、SSL 终结
客户端配置 需要手动配置代理服务器 不需要额外配置,透明代理
安全性 保护客户端,隐藏真实 IP 保护后端服务器,提高安全性

4. 总结

  • 正向代理 :代理 客户端 访问目标服务器,常见于 VPN、浏览器代理。
  • 反向代理 :代理 服务器 处理客户端请求,常用于负载均衡、后端保护。

如果你的目标是 访问外部资源 ,用 正向代理 ;如果是 优化和保护后端服务器 ,用 反向代理

相关推荐
_下雨天.37 分钟前
Nginx性能调优与深度监控
运维·nginx
weiwx831 小时前
Nginx location 和 proxy_pass 配置详解
服务器·网络·nginx
向往着的青绿色9 小时前
雷池(SafeLine)社区版免费部署教程|从环境检查到防护实操全流程
网络·计算机网络·nginx·网络安全·容器·网络攻击模型·信息与通信
困惑阿三14 小时前
全栈服务器运维终极备忘录
运维·服务器·nginx·pm2
PascalMing15 小时前
告别 Nginx!ASP.NET Core 实现多域名 Vue 静态服务与代理转发
vue.js·nginx·asp.net
深念Y15 小时前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
困惑阿三15 小时前
全栈部署排雷手册:从 405 报错到飞书推送成功
服务器·前端·后端·nginx·阿里云·node.js·飞书
yy55271 天前
Nginx 性能优化与监控
运维·nginx·性能优化
qq_172805592 天前
腾讯云WordPress遭遇Nginx 502问题排查与解决方案
nginx·腾讯云
李长渊哦2 天前
Nginx 反向代理实战:解决 IPv6 报错与跨网段访问指南
运维·nginx