如何在本地主机中创建多个子域?

如何在本地主机中创建多个子域?

使用 nginx 和 php,我需要在本地主机中创建多个子域。我该如何实现?

我正在使用ubuntu 12.04php5作为nginx网络服务器。

我已经尝试过*.servername.com我的配置文件。但是没有用。

让我进一步澄清一下

假设一个用户在我的网站(example.com)上注册,并按照自己的意愿创建一个微网站(前提是该名称可用)假设 user1 是他的名字,他想创建一个微型网站 user1.example.com,这应该是动态发生的。由于一次又一次地创建虚拟主机是不切实际的,请帮忙

答案1

鉴于您的问题的关键基本上与从您的网站用户访问新创建的网站有关(这旨在允许这样做),您确实需要为每个创建的网站创建虚拟主机(否则您的网络服务器将无法确定要处理哪个网站的请求)。

您可以查看基于模板自动创建 vhost 并重新加载 nginx 配置,但我不推荐这样做 - 我通常发现这种级别的自动化是不可取的,您应该真正根据每个用户来处理单独的站点配置。

您还需要按照以下要求创建适当的通配符 CNAME 记录本文在您的 DNS 中。

编辑:根据以下评论,这里有一个关于您可以实施的建议。

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

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;

}

然后,您可以复制更改“模板”条目,并使用用户选择的子域。这取决于您环境的其余部分,但例如,您可以有一个文本字段,允许他们输入所需的子域,然后让“提交”(或类似)操作触发您创建的脚本,以将上述配置文件更改为适合他们的配置文件,将其复制到 theirdomain.yourdomain.com.conf,然后运行service nginx reload

这只是您需要做的一个模糊的想法 - 具体内容取决于您的环境和要求。

但是,正如我已经说过的,您应该考虑实施这一措施的后果。

相关内容