海量虚拟主机:将任意端口号映射到自己的域名

海量虚拟主机:将任意端口号映射到自己的域名

我需要定义规则(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>

相关内容