Apache 反向代理适用于单独的子域,但不适用于特定的 URL

Apache 反向代理适用于单独的子域,但不适用于特定的 URL

我正在尝试设置 Apache 以反向代理 Tensorboard 服务器,以便我可以在我的网站上通过 Web 查看训练进度。example.com我决定尝试两种方法来实现这一点:1) 创建一个子域log.example.com并让 Apache 将对此域的请求传递到服务器或 2) 只需在example.com/tensorboard访问时让 Apache 反向代理服务器。在测试了这两种方法后,只有第一种方法似乎可以正常工作。

Tensorboard 服务器在我的服务器机器的 6006 端口上运行。以下是上述方法的 Apache 配置文件:

1)使用子域名log.example.com

<VirtualHost *:80>
        ServerName log.example.com
        ProxyPreserveHost On

        <Directory /path/to/needed/files>
                Require all granted
        </Directory>

        ProxyPass / http://127.0.0.1:6006/
        ProxyPassReverse / http://127.0.0.1:6006/
</VirtualHost>

一切按预期进行。Tensorboard 服务器正确加载并显示图表。

2)使用example.com/tensorboard

<VirtualHost *:80>
        ServerName example.com
        ProxyPreserveHost On

        <Directory /path/to/needed/files>
                Require all granted
        </Directory>

        <Location /tensorboard>
                ProxyPass http://127.0.0.1:6006/
                ProxyPassReverse http://127.0.0.1:6006/
        </Location>
</VirtualHost>

这并没有按预期工作。模板页面确实从 Tensorboard 加载,但它再也没有进一步进展;它总是卡在尝试加载任何预期的图表上。

因为第一种方法有效,所以我假设问题不在于我的 Tensorboard 服务器。我不明白为什么这两种方法不能以完全相同的方式工作;有人知道我的第二种方法出了什么问题吗?

相关内容