我遇到了这样一种情况:我工作的公司希望把它的网络服务器分散到虚拟机上,而不是依赖一个物理盒来完成一切。我们当前的设置如下所示:
example.com → static IP → internal firewall (only 1 machine may receive port 80 traffic) → 192.168.1.100 (our production box)
example1.com, example2.com, etc... → same as above我们的产品盒运行Apache,并使用VirtutalHost将传入的名称分离到适当的本地文件夹。这可以像预期的那样工作,但出于性能和安全考虑,我们希望将一些主机从生产中移开。类似于以下设置:
*.example.com → static IP → firewall → 192.168.1.100 (Production)
jira.example.com -> static IP -> firewall -> 192.168.1.100 -> 192.168.1.120
*.example1.com → static IP → firewall → 192.168.1.100 → 192.168.1.111 (Wordpress-1)
*.example2.com → static IP → firewall → 192.168.1.100 → 192.168.1.112 (Wordpress-2)
etc…..我们对192.168.1.100的VirtualHost文件进行了类似的尝试:
<VirtualHost *:*>
ServerName example.com
...
</VirtualHost>
<VirtualHost jira.example.com:*>
ServerName jira.example.com
...
ProxyPass / http://192.168.1.120:80/
ProxyPassReverse / http://192.168.1.120:80/
</VirtualHost>
<VirtualHost example1.com:*>
ServerName example1.com
...
ProxyPass / http://192.168.1.111:80/
ProxyPassReverse / http://192.168.1.111:80/
</VirtualHost>
<VirtualHost example2.com:*>
ServerName example2.com
...
ProxyPass / http://192.168.1.112:80/
ProxyPassReverse / http://192.168.1.112:80/
</VirtualHost>这部分奏效了--我能够使用example1.com与Wordpress-1对话。然而,重定向会导致超链接指向example.com,这会破坏站点。
当我研究DNS时,它似乎是一个更好的选择。是否有可能让域名提供程序(在本例中为GoDaddy)指向防火墙后面的DNS服务器,然后适当地引导通信量?就像这样:
hostname → static IP → firewall → 192.168.1.100 (DNS) → webserver assigned to hostname
example.com:
NS ns1.example.com.
ns1.example.com. A 192.168.1.100
www A 192.168.1.100
jira.example.com. A 192.168.1.120
example1.com:
NS ns1.example1.com.
ns1.example1.com. A 192.168.1.100
www A 192.168.1.111
example2.com:
NS ns1.example2.com.
ns1.example2.com. A 192.168.1.100
www A 192.168.1.112发布于 2016-03-01 21:00:30
数字海洋指南解释了如何使用Apache2:proxy-extension配置代理
在做了一些清理之后,我找到了这个问题。我的虚拟主机之一使用的是443,但其他的没有。然而,Wordpress希望使用https作为管理员登录名,该登录名是重定向到使用SSL的主机。基本上,当涉及到服务器时,SSL是一个全部或根本不存在的游戏。假设您只使用端口80,下面的操作就可以了:
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
# Note: This assumes your Jira installation is running on port 80
<VirtualHost *:80>
ServerName jira.example.com
...
ProxyPass / http://192.168.1.120
ProxyPassReverse / http://192.168.1.120
</VirtualHost>
<VirtualHost *:80>
ServerName example1.com
...
ProxyPass / http://192.168.1.111
ProxyPassReverse / http://192.168.1.111
</VirtualHost>
<VirtualHost *:80>
ServerName example2.com
...
ProxyPass / http://192.168.1.112
ProxyPassReverse / http://192.168.1.112
</VirtualHost>https://stackoverflow.com/questions/35707501
复制相似问题