关于重定向和反向代理

gkh 发布于 2022-01-08 6473 次阅读


最近想把frp代理的端口重新通过域名封装一下可以实现ssl加密通信。在修改nginx的配置文件时遇到了一些问题。记录一下
刚开始想直接通过反向代理到相关界面,本身就是两个端口号想用一个网站的两个地址来映射反向代理
然而直接反向代理的界面是不对的。不太清楚本身宝塔面板是怎么设置转发的这样会导致后续的页面跳转出现问题。页面返回值后来查阅资料就不用反向代理,直接修改配置文件。在配置文件中通过proxy_pass来设置跳转
location /bt/ {
proxy_pass http://127.0.0.1:9999/;
}

这样就可以正常进行反向代理了。注意 “/” 在 /bt 后面也要加上/ 表示相对引用,否则路由时会加上 /bt的地址,导致路由地址出现问题。所以调头看宝塔的反向代理的配置文件

location ^~/bt
{
proxy_pass http://127.0.0.1:9999/;

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 REMOTE-HOST $remote_addr;
}

可能就是相对引用的问题,但是直接加斜杠会出现问题。没有继续研究问题解决方法。
另一个后台的问题也是这样,但是他的跳转不止一层,本身直接通过反向代理会出现404的错误。跳转404看地址可以明白,
本身的跳转地址会由于连续跳转导致地址出现匹配错误。所以目前的解决方案是直接301 跳转到地址,相当于只是包装了一层进行跳转,并没有实质进展。这也就引出了反向代理和重定向的区别。重定义
这个是重定义的图,可得,只是返回了一个新地址,计算机需要重新进行地址解析和访问。反向代理
这个是服务器进行相关跳转然后返回跳转服务器的返回值。这个访问速度较快。
(图引用自https://www.cnblogs.com/muxueyuan/p/12168417.html)

此作者没有提供个人介绍。
最后更新于 2022-01-08