【问题标题】:Apache forward request from port 80 to port 8000 based on urlApache根据url将请求从80端口转发到8000端口
【发布时间】:2015-11-17 07:16:33
【问题描述】:

我有一个 Rails 应用程序在 Apache 中运行,端口为 8000,一些 PHP 应用程序在端口 80 上运行。现在我通过在 URL 中提供端口 8000(如 example.com/dashboard:8000)来访问我的 Rails 应用程序。

我也想访问我的 rails 应用程序,但 URL 中没有端口。所以在apache中我想写一个条件来检查带有/dashboard的url并将这些请求转发到端口8000

我不能使用子域,所以它必须基于 URL。

我四处搜索,发现我们可以使用 RewriteEngine 作为 URL 的条件,但我无法确切知道如何做到这一点,而且我是 apache 配置的新手,所以有人可以帮我解决这个问题。

提前感谢

【问题讨论】:

    标签: apache


    【解决方案1】:

    一个简单的解决方案是使用ProxyPass 代理整个/dashboard 子树:

    ProxyRequests Off
    ProxyPass        /dashboard http://localhost:8000/dashboard
    ProxyPassReverse /dashboard http://localhost:8000/dashboard
    

    但请注意,您的 rails 应用程序需要知道它可能不应该将端口号放入它生成的链接、skyesheet refs 等中。

    【讨论】:

    • @anirudh:您的 rails 东西是否配置为也绑定到 localhost 或仅绑定到您的公共 IP? (如果您的应用程序在 localhost 上不可见,您可以将 example.com 代替 localhost;就个人而言,我更喜欢我的应用程序服务器仅在 localhost 上可见,因此所有访问控制都可以通过 httpd 完成,但这是一个进一步的步骤。)
    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2014-08-20
    • 2018-03-15
    • 2015-03-15
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多