ProxyPassMatch 不起作用

ProxyPassMatch 不起作用

我在 localhost:3030 运行一个服务器,我可以访问许多网页。当我在 上执行 wget 时localhost:3030/index.html,我获取了网页。使用 ProxyPassMatch,我试图将请求重定向到 ,example.com/sparql/<something>locahost:3030/<something>它不起作用。我使用的是 debian,配置如下:

    <VirtualHost *:80>
    ServerName example.com
   ProxyPass         "/sparql"  "http://localhost:3030/"
   ProxyPassReverse  "/sparql"  "http://localhost:3030/"
   ProxyPassReverseCookieDomain  "localhost"  "example.com"
    ....
    <VirtualHost *:80>

当我在 上发送请求时example.com/sparql/index.html,页面返回,但没有返回任何图像和 css 文件。配置有问题吗?

答案1

为什么要用ProxyPassMatch这么简单的反向代理?您可以...

<VirtualHost *:80>
    ServerName example.com
    ...
    ProxyPass         "/sparql/"  "http://localhost:3030/sparql/"
    ProxyPassReverse  "/sparql/"  "http://localhost:3030/sparql/"
    ProxyPassReverseCookieDomain  "localhost"  "example.com"
</VirtualHost>

然后,如果您的内容位于HTML 正文中http://localhost:3030/,可能会有一些引用 而/不是的硬编码内容/sparql/。虽然也可以使用mod_substitute,这可能会导致其他问题。因此,建议使用子域名而不是在路径中添加额外的部分,如下所示:

<VirtualHost *:80>
    ServerName sparql.example.com
    ...
    ProxyPass         "/"  "http://localhost:3030/"
    ProxyPassReverse  "/"  "http://localhost:3030/"
    ProxyPassReverseCookieDomain  "localhost"  "sparql.example.com"
</VirtualHost>

相关内容