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、浏览器代理。
  • 反向代理 :代理 服务器 处理客户端请求,常用于负载均衡、后端保护。

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

相关推荐
MiNG MENS2 小时前
nginx 代理 redis
运维·redis·nginx
珊瑚怪人3 小时前
一个域名问题
nginx
dxdz5 小时前
一文搞定 Linux Nginx 从安装、启动到 nginx.conf 全配置详解(新手也能看懂)
nginx
遇见火星6 小时前
Nginx 负载均衡配置模板:轮询、权重、IP哈希、最少连接
tcp/ip·nginx·负载均衡
untE EADO8 小时前
Nginx代理到https地址忽略证书验证配置
运维·nginx·https
Treh UNFO10 小时前
nginx的重定向
大数据·数据库·nginx
理人综艺好会10 小时前
nginx了解
运维·nginx
likeGhee11 小时前
docker创建nginx+keepalived+nacos集群(仅测试环境)
nginx·docker
Harvy_没救了1 天前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
遇见火星1 天前
Nginx限流配置:防止接口被刷,服务器稳如泰山
运维·服务器·nginx