球童用代理重写

时间:2018-08-13 21:44:24

标签: reactjs docker proxy reverse-proxy caddy

我正在尝试使用Caddy托管一个React应用程序,其中一些端点重定向到其他Docker容器,其余端点重写为基本URL(也就是React应用程序的index.html文件)。

但是代理不会转发到其他容器,它只是显示react应用。

如何使其显示api页面而不是react应用?

example.com {
    gzip    
    root /app/frontend

    proxy /staticfiles django:8000 {
        transparent
    }
    proxy /api django:8000 {
        transparent
    }

    proxy /admin django:8000 {
        transparent
    }

    rewrite {
        to .* /index.html
    }
}

1 个答案:

答案 0 :(得分:0)

我认为这可能是指令排序问题,或者是缺少排序。例如,如果rewrite发生在proxy之前,我不确定。您可以尝试将配置重写为使用球童站点地址首先匹配最长的事实。像这样:

example.com {
    gzip    
    root /app/frontend

    rewrite {
        to .* /index.html
    }
}
example.com/staticfiles example.com/api example.com/admin {
    proxy / django:8000 {
        transparent
    }
}