我有一个运行的生产网站分配给一个主机(红矿应用程序)。我需要添加一个新的应用程序到同一主机作为一个子目录。
这是当前运行在主机的基本文件夹上的红矿应用程序的虚拟主机配置。
<VirtualHost *:80>
ServerName redmine.hostname.com
DocumentRoot "C:/BitNami/redmine-2.5.1-1/apps/redmine/htdocs/public/"
RewriteEngine On
RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA]
ProxyPass / balancer://redminecluster
ProxyPassReverse / balancer://redminecluster
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
</Proxy>
</VirtualHost>
所以这个应用程序已经在redmine.hostname.com.上运行了我想添加我自己的应用程序,并希望它在redmine.hostname.com/myapp/.上运行
不管我做了什么,我都做不到。我不能改变红色的路径,我必须添加新的应用程序到同一个虚拟主机。除了80之外,没有打开的端口,所以我必须让它在redmine.hostname.com/myapp/上运行。
基本上,红矿应用程序必须回答所有不以redmine.hostname.com/myapp/.开头的请求。我的应用程序应该回复从redmine.hostname.com/myapp.开始的所有请求
我应该使用什么设置?
发布于 2014-11-10 06:54:58
如果您的应用程序/myapp位于c:/myappdir,配置apache的最简单方法是使用以下配置:
<VirtualHost *:80>
ServerName redmine.hostname.com
DocumentRoot "C:/BitNami/redmine-2.5.1-1/apps/redmine/htdocs/public/"
Alias /myapp "c:/myappdir"
ProxyPass /myapp !
ProxyPass / balancer://redminecluster/
ProxyPassReverse / balancer://redminecluster/
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
</Proxy>
</VirtualHost>
使用感叹号作为ProxyPass的目标将/myapp从代理配置中排除为文档化的这里。另外,您不需要一个特殊的RewriteRule,因为您不需要修改请求来编辑,ProxyPass应该就足够了。
发布于 2014-11-06 14:39:27
这在一定程度上取决于您自己的应用程序是托管在apache服务器本身上,还是委托给另一个服务器/进程。
如果它位于apache服务器本身,那么只需将“myapp”放到文档根目录中即可。然后,您需要删除ProxyPass行,并将其替换为locationmatch块。
<VirtualHost *:80>
ServerName redmine.hostname.com
DocumentRoot "C:/BitNami/redmine-2.5.1-1/apps/redmine/htdocs/public/"
RewriteEngine On
RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA]
<LocationMatch "^(?!/myapp)">
ProxyPassMatch balancer://balancer://redminecluster
</LocationMatch>
ProxyPassReverse / balancer://redminecluster
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
</Proxy>
</VirtualHost>
因此,策略是将不匹配的所有内容与现有的红矿应用程序匹配/myapp。所有匹配的/myapp都将转到文档根目录。如果您自己的应用程序是代理,那么您需要另一个位置匹配块代理/myapp到正确的位置。
https://stackoverflow.com/questions/26719903
复制相似问题