我需要定义规则(mod_rewrite
我认为使用)来将任何端口映射到portnumber.domain.com
。如何在 Apache2 中执行此操作?现在我为每个端口号都有一个配置,如下所示。
# 9003.domain.com
<VirtualHost *:80>
ServerName 9003.domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9003/
ProxyPassReverse / http://127.0.0.1:9003/
</VirtualHost>
# 9004.domain.com
<VirtualHost *:80>
ServerName 9004.domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9004/
ProxyPassReverse / http://127.0.0.1:9004/
</VirtualHost>
# and so on....
答案1
你应该能够做一些事情代理密码匹配,也许是
ProxyPassMatch ^([0-9{2,5}]) http://127.0.0.1:$1
答案2
我对@Krist 的回答做了一些修正,现在它就可以正常工作了。403 error
是由于RewriteEngine On
缺席。
<VirtualHost *:80>
RewriteEngine On
ServerAlias *.domain.com
RewriteCond %{HTTP_HOST} (\d+).domain.com
RewriteRule ^/(.*)$ http://localhost:%1/$1 [P]
</VirtualHost>
答案3
RewriteRule 确实可以做到这一点。
<VirtualHost *:80>
Servername www.domain.com
ServerAlias *.domain.com
RewriteCond %{HTTP_HOST} (\d+).domain.com
RewriteRule (.*) http://localhost:%1/$1 [P]
</VirtualHost>