回答
收藏
分享
举报
nginx反代后浏览器中location如何做到路径不丢失?
提问于2024-01-26 10:19

浏览 1.6k

文章标签

情况是这样的,有(nginx代理)www.a.com和(目标)www.b.com,我想访问浏览器www.a.com/opp,出现www.b.com的信息,并且浏览器里面的主域名还是www.a.com/opp, 我在nginx上这样配置:


                location /opp {
                     proxy_set_header Accept-Encoding "";
                     proxy_pass             http://www.b.com/; #你要反代的网站域名
                     proxy_redirect        off;
#                     proxy_set_header        HOST            $host;
                     proxy_set_header        X-Real-IP       $remote_addr;
                     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                     error_page 400 401 402 403 404 /40x.html;

                        }
# !!!--用于解决js css等资源无法加载的问题--!!!
                 location ~ .*\.(js|css|jpg|gif|png|bmp|jpeg|svg)$ {
                     proxy_pass http://www.b.com;
                        }发现可以实现浏览器www.a.com/opp,出现www.b.com的“首页”信息,并且浏览器域名是www.a.com/opp,但是当我点击网站首页的内容链接后,会跳转为 www.a.com/xxxx.html 等,这里的opp就在浏览器消失了,这导致我也出现40x报错,手动添加opp到浏览器路径www.a.com/opp/xxxx.html ,就可以正确浏览www.b.com/xxxx.html的内容。


我试过  location /opp/  , proxy_pass    http://www.b.com;  等加减/ 号的组合。还是没有解决。


所以要怎么配置?达成:访问浏览器www.a.com/opp,出现www.b.com的信息,并且浏览器里面的地址还是www.a.com/opp ,点击首页的链接xxxx.html后,会在地址栏跳转到 www.a.com/opp/xxxx.html,内容是www.b.com/xxxx.html的(实际就是让这个opp路径在浏览器不要丢失,不用考虑Http(s)问题,已经解决)。


已修改于2024-01-26 10:19



写下您的回答
发表回答
全部回答(0)

按点赞数排序

按时间排序

提问者
2114171uxyo
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答

options请求?需要跨域访问? 

点赞 0
浏览 7.8k

sticky模块只能在linux下吧,win下没有。tomcat好像有个session复制吧,或者可以用共享session。

点赞 0
浏览 7.7k

没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。

点赞 0
浏览 10.4k