我有一个虚拟主机配置为在 Apache 和 Passenger 上运行 Ruby on Rails 应用程序,方式如下:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName staging.domain.co
ServerAlias *.doamin.co
DocumentRoot /home/ubuntu/staging/current/public
因此,staging.domain.co、site1.domain.co、site2.domain.co 均能正常工作,这是针对暂存环境的。现在我需要在同一台服务器上添加生产环境。我想添加生产环境,但我不知道该怎么做。VPS 在 EC2 上运行。即使使用两台不同的服务器,也存在 DNS 服务器将所有子域解析为当前 VPS IP 的问题。我认为唯一的解决方案是使用不同的二级域名:
staging
anotherdomain.co
production
domain.co
你怎么认为?
答案1
如果您在 apache 中使用基于名称的虚拟主机,则 DNS 与它关系不大;一百万个主机名可能最终位于您的 IP 上,而 apache 仍然能够为百万个不同的网站提供服务。
也就是说,你的设置的问题在于
ServerAlias *.domain.com
您想删除它并将其替换为用于暂存和/或生产的实际子域。
还要注意,第一个列出的虚拟主机根据定义是 apache 中的默认虚拟主机。