使用域名通配符在同一台服务器上进行暂存和生产

使用域名通配符在同一台服务器上进行暂存和生产

我有一个虚拟主机配置为在 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 中的默认虚拟主机。

相关内容