反向代理
反向代理
反向代理通常驻留在Web服务器端,以控制到服务器的流量、验证或解密连接请求或简单地缓存内容以加快交付速度。
它可以帮助Web服务器免受攻击。还可以将流量分配到不同的服务器以平衡负载。
定义
- 反向代理服务器位于用户与目标服务器之间,用户直接访问反向代理服务器就可以获得目标服务器的资源。
- 反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
区分正向代理和反向代理
最根本的区别是代理的对象不同
正向代理是代理客户端,比如vpn
反向代理是代理服务器,比如nginx
最核心的不同在于代理的对象不同
【正向代理】:
(内部网络用户向外网发送请求)
正向代理代理的是客户端,需要为每一个客户端都做一个代理服务器,客户端访问的路径是目标服务器
【反向代理】:
(外部网络用户向内网发送请求)
反向代理代理的是真实服务器,客户端不需要做任何的配置,访问的路径是代理服务器,由代理服务器将请求转发到真实服务器
实践
::: tip 需求
实现效果访问http://192.168.80.102:80(Nginx首页),最终代理到http://192.168.80.102:8080(Tomcat首页)
:::
Linux下配置
应用一:
server { # 监听端口80 即当访问服务器的端口是80时,进入这个server块处理 listen 80; # server_name当配置了listen时不起作用 server_name localhost; # location后面代表访问路径 当是/ 请求时 代理到tomcat的地址 location / { # 使用 proxy_pass(固定写法)后面跟要代理服务器地址 proxy_pass http://192.168.80.102:8080; } }
应用二:
让Nginx监听9001端口
我们实现当访问http://192.168.80.102:9001/edu(Nginx地址)时,nginx给我们代理到http://192.168.80.102:8081,
当访问http://192.168.80.102:9001/vod时,nginx给我们代理到http://192.168.80.102:8082
server { # 监听9001端口 listen 9001; # 进行路径匹配,匹配到edu代理到8081 location ~/edu/ { proxy_pass http://192.168.80.102:8081; } # 进行路径匹配,匹配到vod代理到8082 location ~/vod/ { proxy_pass http://192.168.80.102:8082; } }
重启nginx服务器
sudo systemctl restart nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!