希望您能帮助我解决这个问题,我有一个配置为某些域的反向代理的 apache 服务器。它们指向 iis 服务器,并且在同一台机器上还有一些 php 站点作为虚拟主机。
对于反向代理我这样做:
<VirtualHost *:80>
ServerName reverseprox1
ServerAlias site1.domain.com
ProxyRequests Off
ProxyPass / http://site1.domain.com/
ProxyPassReverse / http://site1.iisserver.internald.com/
ProxyPassReverseCookieDomain site1.iisserver.internald.com site1.domain.com
</VirtualHost>
<VirtualHost *:80>
ServerName reverseprox2
ServerAlias site2.domain.com
ProxyRequests Off
ProxyPass / http://site2.domain.com/
ProxyPassReverse / http://site2.iisserver.internald.com/
ProxyPassReverseCookieDomain site2.iisserver.internald.com site2.domain.com
</VirtualHost>
...
运行良好,但现在我需要添加大约 20 个指向 iis 服务器的测试站点(使用随机名称,而不仅仅是 site1、site2、site3 等)。有没有办法让它动态化?IE 它会检测 site2.domain.com 的 site2 并将其指向 site2.iisserver.internald.com。
我不能用鱿鱼。
这是我的尝试,但到目前为止失败了
<VirtualHost *:80>
ServerName default
ServerAlias domain.com
ProxyRequests Off
RewriteEngine on
RewriteCond %{HTTP_HOST} (.+)\.domain\.com
ProxyPass / http://%1.domain.com/
ProxyPassReverse / http://%1.iisserver.internald.com/
ProxyPassReverseCookieDomain %1.iisserver.internald.com %1.domain.com
</VirtualHost>
非常感谢您的帮助
答案1
以下两行代码有什么问题:
1-21 案例。
#!/bin/bash
while [[ $(( $i < 21 )) != 0 ]]; do
cat << EOF
<VirtualHost *:80>
ServerName reverseprox$i
ServerAlias site$i.domain.com
ProxyRequests Off
ProxyPass / http://site$i.domain.com/
ProxyPassReverse / http://site$i.iisserver.internald.com/
ProxyPassReverseCookieDomain site$i.iisserver.internald.com site$i.domain.com
</VirtualHost>
EOF
i=$(( $i + 1 ))
done
任何事情 - 情况。
它会打印您需要添加到 conf 文件的所有记录。
#!/bin/bash
#Read a file, or query a db somewhere.
for i in $(cat /path/to/namelist); do
cat << EOF
<VirtualHost *:80>
ServerName reverseprox$i
ServerAlias $i.domain.com
ProxyRequests Off
ProxyPass / http://$i.domain.com/
ProxyPassReverse / http://$i.iisserver.internald.com/
ProxyPassReverseCookieDomain $i.iisserver.internald.com $i.domain.com
</VirtualHost>
EOF
done
答案2
我非常确定您可以为此使用重写规则。
看http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p有关如何设置重写规则以使用 mod_proxy 的描述。