10人参与 • 2025-07-24 • 缓存
当然可以,以下是对 nginx 正向代理与反向代理 的详细解析,包括概念、工作机制、配置示例、使用场景和区别等内容,适用于开发、运维及网络基础学习场景。
代理是一种网络服务,客户端通过代理服务器间接访问目标资源。根据请求的方向不同,代理分为:
类型 | 说明 |
---|---|
正向代理 | 代理客户端访问外部资源(“我替你去”) |
反向代理 | 代理外部用户访问内部服务器(“你来找我,我替你找它”) |
定义:
客户端并不直接访问目标服务器,而是把请求交给代理服务器,由代理服务器转发请求并返回响应。
工作流程:
[客户端] → [nginx正向代理] → [目标服务器] ↓ [响应返回到客户端]
使用场景:
示例配置(nginx):
# nginx.conf events {} http { server { listen 8888; resolver 8.8.8.8; location / { proxy_pass $scheme://$http_host$request_uri; proxy_set_header host $http_host; proxy_set_header x-real-ip $remote_addr; } } }
使用方式(客户端设置代理):
浏览器或 curl 设置代理为:http://<nginx-ip>:8888
定义:
客户端访问代理服务器,代理根据配置将请求转发到后端真实服务器(upstream),客户端无感知。
工作流程:
[客户端] → [nginx反向代理] → [后端服务器] ↓ [响应返回到客户端]
使用场景:
示例配置(nginx):
http { upstream backend { server 192.168.1.101:8080; server 192.168.1.102:8080; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } } }
比较项 | 正向代理(forward proxy) | 反向代理(reverse proxy) |
---|---|---|
代理的对象 | 客户端 | 服务器(后端) |
请求目标 | 客户端指定的外部网站 | 内部真实服务 |
常用目的 | 帮助客户端访问目标 | 保护服务器、统一入口 |
客户端感知 | 明确知道自己使用了代理 | 无需知道后端结构 |
配置位置 | 客户端需配置代理 | 服务端配置即可 |
应用场景 | 翻墙、匿名访问、绕过限制 | 负载均衡、内网服务暴露、缓存 |
功能 | 说明 |
---|---|
负载均衡 | 多个后端服务器自动轮询分发流量 |
https 网关 | 客户端连接为 https,后端可为 http |
安全隔离 | 仅暴露代理,隐藏真实服务 ip |
静态 + 动态分离 | 静态资源由 nginx 提供,动态由后端处理 |
缓存优化 | 可配置缓存减少后端负载(如 cdn) |
server { listen 80; server_name www.example.com; location / { proxy_pass http://192.168.1.100:8080; } } server { listen 80; server_name api.example.com; location / { proxy_pass http://192.168.1.200:8081; } }
如果你还想了解:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论