如何在本地主机上创build多个子域?

使用nginx和php我需要在本地主机上创build多个子域。 我怎么能做到这一点?

我使用nginx作为web服务器的ubuntu 12.04php5

我已经尝试*.servername.com在我的configuration文件。 它不工作。

让我再澄清一点

说一个用户在我的网站(example.com)注册,并创build一个任何名字的微型网站,他希望(假设名称应该可用)说user1是他的名字,他想创build一个微型网站作为user1.example。 com,它应该dynamic发生。 由于一次又一次地创build虚拟主机是不实际的,请帮助

鉴于你的问题的症结基本上是从你的网站的用户访问新创build的网站,旨在允许这一点,你确实需要为每个创build的网站创build虚拟主机(否则你的Web服务器将无法确定哪个站点处理请求)。

你可以看看自动创build基于模板的虚拟主机,并重新加载nginx的configuration,但我不会推荐它 – 我通常会发现,这种自动化水平是不可取的,你应该真正负责个别站点configuration用户基础。

您还需要根据您的DNS中的这篇文章创build适当的通配符CNAMElogging。

编辑:根据下面的评论,这里是一个build议,你可以实现什么。

例如,您可以有一个模板虚拟主机文件,其中包含类似于以下内容的内容:

 server { listen 80; listen 443 ssl; server_name template.yourdomain.com; access_log /var/log/nginx/template.yourdomain.com_access.log main; error_log /var/log/nginx/template.yourdomain.com_error.log warn; } 

然后,您可以复制用户select的子域来更改“模板”条目。 它取决于你的环境的其余部分,但是例如你可以有一个文本字段来允许他们input想要的子域名,然后让'submit'(或类似的)动作触发你创build的脚本来改变上面的configuration文件为他们适当的一个,复制到他们的domain.yourdomain.com.conf,然后运行service nginx reload

这只是一个模糊的想法,你需要做什么 – 具体取决于你的环境和要求。

但正如我已经说过的,你应该考虑实施这个的意义。