who*_*rth 2 apache httpd.conf conf.d
我想要做的是采取以下措施:
http://localhost:10000
http://localhost:11000
http://localhost:12000
Run Code Online (Sandbox Code Playgroud)
并分别路由如下:
http://my-app (this is port 10000 traffic)
http://my-app/app (this is port 11000 traffic)
http://my-app/blog (this is port 12000 traffic)
Run Code Online (Sandbox Code Playgroud)
这是我的conf.d文件-
<VirtualHost *:80>
ServerName my-app.domain.com
ServerAlias my-app
Redirect / https://my-app.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName my-app.domain.com
ServerAlias my-app
Include ssl/default/ssl.cfg
RewriteEngine On
ProxyRequests Off
ProxyPreserveHost On
RemoteIPHeader X-Forwarded-For
RequestHeader set X-FORWARDED-SSL on
RequestHeader set X-FORWARDED_PROTO https
ProxyTimeout 900
TimeOut 900
RewriteRule ^$ / [R]
ProxyPass / http://localhost:10000/
ProxyPassReverse / http://localhost:10000/
RewriteRule ^/app/(.*) http://localhost:11000/$1 [P,L]
ProxyPassReverse /app/ http://localhost:11000
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
重定向适用于初始端口,但不适用于进入端口11000的流量。我确定我做的事情很愚蠢,但我不知道该怎么做。
You need to specify the most "specific" paths first when using proxypass, specify /blog/ /app/ first and then /. If you don't do it this way ProxyPAss / will override the others.
RewriteRule ^$ / [R]
<-- is not happening since in virtualhost only ^/$ will match and ^/$ is already /, so it is not working, if it did it would loop.
Aslo, don't use mod_rewrite since there is no need to proxy with it or at least you are not doing anything that proxypass or proxypassmatch wouldn't do alone, and match slashes when using ProxyPass (if there is a ending slash in source add in target, if there is not, dont, otherwise unexpected behaviour can happen with responses from the backend), and as stated first, specify most specific paths first:
So, Remove mod_rewrite directives entirely and:
ProxyPass /app/ http://localhost:11000/
ProxyPassReverse /app/ http://localhost:11000/
ProxyPass /blog/ http://localhost:12000/
ProxyPassReverse /blog/ http://localhost:12000/
ProxyPass / http://localhost:10000/
ProxyPassReverse / http://localhost:10000/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5049 次 |
最近记录: |