Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache基于url将请求从端口80转发到端口8000_Apache - Fatal编程技术网

Apache基于url将请求从端口80转发到端口8000

Apache基于url将请求从端口80转发到端口8000,apache,Apache,我有一个rails应用程序在apache的端口8000上运行,还有一些PHP应用程序在端口80上运行。现在我通过在URL中提供端口8000来访问rails应用程序(比如example.com/dashboard:8000) 我想访问我的rails应用程序,也不需要URL中的端口。因此,在apache中,我想编写一个条件,用/dashboard检查url,并将这些请求转发到端口8000 我不能使用子域,所以它必须基于URL 我四处搜索,发现我们可以使用RewriteEngine来查看URL上的条件

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

我想访问我的rails应用程序,也不需要URL中的端口。因此,在apache中,我想编写一个条件,用
/dashboard
检查url,并将这些请求转发到端口
8000

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

我四处搜索,发现我们可以使用RewriteEngine来查看URL上的条件,但我无法确切地知道如何执行,而且我还不熟悉apache配置,所以请有人帮助我


感谢advace

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

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

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

@anirudh:您的rails东西是配置为也绑定到本地主机还是只绑定到您的公共IP?(如果你的应用程序在本地主机上不可见,你可以将你的
example.com
替换为
localhost
;就我个人而言,我更喜欢我的应用程序服务器只在本地主机上可见,所以所有访问控制都可以由httpd完成,但这是进一步的步骤。)