网站首页 > 技术教程 正文
大家好,我是mikechen。
Nginx反向代理大型网站必备的,也是大厂经常考察的,下面我就全面来详解Nginx反向代理原理@mikechen
本文作者:mikechen
文章来源:mikechen.cc
正向代理
如果要搞透Nginx反向代理,你有必要先搞懂正向代理,理解清楚了正向代理,更容易理解反向代理。
正向代理:就是客户端将请求发送给正向代理服务器,代理服务器再将请求转发给目标服务器,获取响应后返回给客户端。
举一个例子:正向代理,就像你雇佣了一个中间人去帮你取东西。
比如:你要访问(google.com),我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。
如下图所示:
这个过程中,Google 服务器认为是“代理服务器”在访问它,而并不知道背后的真实访问者是你。
换句话说,正向代理屏蔽了真实客户端的信息,它充当客户端和目标服务器之间的“中间人”。
反向代理
搞清楚了“正向代理”后,下面我再来谈谈反向代理。
反向代理(Reverse Proxy),同样是一个位于客户端、和目标服务器之间的中间服务器。
反向代理作用对象和服务目标,与正向代理相反。
正向代理,是为了客户端能够访问到它想访问的服务器,隐藏的是客户端自身。
反向代理是为了保护和优化后端服务器,隐藏的是后端服务器的真实信息。
如下图所示:
客户端向反向代理服务器发送请求,反向代理服务器根据配置将请求转发给后端的真实服务器,并将后端服务器的响应返回给客户端。
客户端不知道后端真实服务器的存在,只与反向代理服务器交互。
采用了反向代理,有啥好处呢?
包含:
- 增强安全性:
- 隐藏后端服务器真实 IP 和拓扑,抵御恶意攻击。
- 实现负载均衡:
- 将请求分发到多台后端服务器,提高系统可用性和性能。
- 提供缓存加速:
- 缓存静态内容,减轻后端服务器压力,提升响应速度。
- 统一访问入口:
- 将多个后端服务通过单一域名和端口暴露,简化用户访问。
Nginx反向代理
Nginx 工作在网络的“入口”层,它会根据配置规则来决定如何转发请求。
基本流程如下:
- 客户端发起请求到 Nginx;
- Nginx 根据请求路径、域名等进行匹配;
- 将请求转发到后端真实服务器(upstream)。
- 获取响应后返回给客户端。
以下是一个基本的反向代理配置示例:
http { upstream backend_servers { server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; } server { listen 80; server_name mikechen.cc; location / { proxy_pass http://backend_servers; # 保留客户端真实 IP 信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 优化连接 proxy_http_version 1.1; proxy_set_header Connection ""; # 设置超时时间 proxy_connect_timeout 10; proxy_read_timeout 30; } }}
前端访问 mikechen.cc,请求交由 Nginx 分发给三台 Java 服务实例。
真实客户端 IP 被保留,可用于日志、权限控制等。
以上
本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2025-06-23 Seata源码—4.全局事务拦截与开启事务处理一
- 2025-06-23 Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
- 2025-06-23 中兴光猫 Telnet下设置大全(中兴光猫上网设置)
- 2025-06-23 Seata源码—7.Seata TCC模式的事务处理
- 2025-06-23 这AI浏览器代理太强!AI帮你自动完成复杂网页操作,微软开源新神器
- 2025-06-23 ABACUS安装教程 - Toolchain (2-Intel)
- 2025-06-23 K8S原理架构详解(图文全面总结)(k8s架构介绍)
- 2025-06-23 飞牛nas安装dify过程(飞牛nas安装小雅)
- 2025-06-23 Istio 中实现客户端源 IP 的保持(源ip端口)
- 2025-06-23 在CentOS中设置系统级代理(centos代理软件)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)