nginx url 代理服务的问题

2018-01-05 01:00:03 +08:00
 exuxu

我想实现访问
ip 解析到 www.test.com

www.test.com/sub1
www.test.com/sub2

nginx 用的是以下(简化)配置

server {
        listen       80;
        server_name  www.test.com;
        location  /sub1/ {
                 proxy_pass http://127.0.0.1:3000/;
        }
        location /sub2/ {
                proxy_pass http://127.0.0.1:4000/;
        }
}

端口 3000 的服务全程是 http://www.test.com/sub1/xxxxxxx 为什么不可行....

999 次点击
所在节点    问与答
4 条回复
exuxu
2018-01-05 11:23:20 +08:00
~ 沉了 ~
h4lbhg1G
2018-01-05 13:31:28 +08:00
其实这种你可以开一个`nc -l 3000`调试下,看看打过去的是啥。因为两个都有结尾的 /,那么实际上应该相当于访问的`http://127.0.0.1:3000/xxxxxx` 。

优雅的小尾巴:欢迎使用和 star 我的命令行工具 https://github.com/rexdf/CommandTrayHost
exuxu
2018-01-05 14:51:41 +08:00
@h4lbhg1G 试过了其它代理服务能用,但是部署的测试服务,没法使用,测试服务会对未登录 redirect,可能是它导致的,现在是部分 header 页面加载出来了。
h4lbhg1G
2018-01-05 15:32:20 +08:00
@exuxu 那就是是代理服务器对头或者源有检测了,如果有控制权看一下对方接的 http 头就好了。话说这样的话,你的问题的里面简化版等于啥也没说。

如果没有控制权,那要做一系列的替换。对于重定向用 proxy_redirect,对于 css/html/js 用三方插件 subs_filter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420200

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX