V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
exuxu
V2EX  ›  问与答

nginx url 代理服务的问题

  •  
  •   exuxu · 2018-01-05 01:00:03 +08:00 · 1002 次点击
    这是一个创建于 2526 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想实现访问
    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 为什么不可行....

    4 条回复    2018-01-05 15:32:20 +08:00
    exuxu
        1
    exuxu  
    OP
       2018-01-05 11:23:20 +08:00
    ~ 沉了 ~
    h4lbhg1G
        2
    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
        3
    exuxu  
    OP
       2018-01-05 14:51:41 +08:00
    @h4lbhg1G 试过了其它代理服务能用,但是部署的测试服务,没法使用,测试服务会对未登录 redirect,可能是它导致的,现在是部分 header 页面加载出来了。
    h4lbhg1G
        4
    h4lbhg1G  
       2018-01-05 15:32:20 +08:00
    @exuxu 那就是是代理服务器对头或者源有检测了,如果有控制权看一下对方接的 http 头就好了。话说这样的话,你的问题的里面简化版等于啥也没说。

    如果没有控制权,那要做一系列的替换。对于重定向用 proxy_redirect,对于 css/html/js 用三方插件 subs_filter
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:07 · PVG 10:07 · LAX 18:07 · JFK 21:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.