我有一个网站,它有许多子域名(每个客户一个)。每个子域名的内容都不同,提取不同的数据、不同的布局等,所以我认为我不能只将一个目录别名为许多不同的子域名。我的问题是,这样做的最佳做法是什么?每个子域名都需要 SSL。我的设置是
- 亚马逊 EC2 (Ubuntu)
- 我的域名的通配符 SSL (*.mydomain.com)
- 阿帕奇 2
- PHP(灯)
目前,我只是在“/etc/hosts”中创建一个新条目,并在 Web 根目录中创建一个适当的位置(即 /var/www/abc.mydomain.com、/var/www/def.mydomain.com 等)。我刚刚发现我需要为每个子域分配一个唯一的 IP,而这对于 EC2 来说很棘手,因为它们会限制您可以拥有的数量(除非您跳过一些环节)。现在我有大约 10 个子域,这是可以管理的,但理论上我可以拥有数千个。
我是否只用了唯一可行的方法,或者是否有更好的方法值得我去研究?
答案1
将它们添加到 /etc/hosts 有什么特别的原因吗?如果主机名解析,那么对于更一般的目的来说,这应该足够了。
我喜欢您使用的目录结构,它与我使用的任何方法都非常相似。此外,我建议为每个子域指定单独的文件ErrorLog
。CustomLog
Zoredache 在 IP 方面提出了一个很好的观点,因为通配符证书应该可以消除添加子域时对多个 IP 的需求。此外,还有一个较新的服务器名称指示(SNI)功能消除了每个单独的 SSL 证书都需要一个 IP 的需要。
如果您有数千个,通常您可以考虑编写脚本来管理添加或删除 VirtualHosts、共享内容、重定向和其他潜在解决方案。选项将基于您当时的确切需求。
如果您谈论的是多用户系统,方法也完全不同。例如,每个域都位于 /home/user/public_html 或 /home/user/www 中。