如何设置像blogspot这样的子域

时间:2008-11-26 16:12:07

标签: apache dns subdomain

如果用户在注册我的网站时应该如何设置子域。

需要什么基础设施?我正在使用Linux服务器。

5 个答案:

答案 0 :(得分:6)

您可以为每个已知子域使用特定DNS(CNAMEA / AAAA)条目,也可以使用接受* .example的通配符DNS条目。 COM:

$ORIGIN example.com
foo     IN A 12.34.6.78
bar     IN A 12.34.6.78

$ORIGIN example.com
*       IN A 12.34.6.78

后者的优点是一旦服务运行,DNS或Apache配置都不需要进行任何更改。缺点是所有这些通配符查找必须(根据定义)最终返回相同的IP地址。

Apache配置将取决于您的要求,包括最终用户控制和安全性。请注意,如果用户有权在服务器上运行CGI脚本,则需要进行其他设置以确保安全地完成。

根据内容是静态还是动态,这也会影响您的配置:

  1. 使用mod_vhost_alias将各个虚拟主机映射到服务器上的各个目录中。

  2. 如果您真的想要,请为每个已知网站创建单独的<VirtualHost>部分,但每次新用户注册时您都必须重启Apache

  3. 使用单个<VirtualHost>,然后在脚本中查看请求的URL的主机名部分(来自$SERVER_NAME环境变量),该脚本呈现输出以确定哪个用户的内容为显示。

答案 1 :(得分:3)

您可以在DNS设置中为每个子域

制作CNAME条目/ A记录
  

CNAME记录是您的记录   允许的域管理设置   你控制你的子域名   域。

要自动化以及注册,您可以编写一个脚本,当他/她注册时为每个用户执行。

您也可以参考此链接,了解Apache的分步过程:

<强> How to setup subdomains in apache

(因为你提到Linux,我认为它必须是APache。如果不是这样的话请提及)

替代解决方案

您也可以在同一个帖子中引用wildcard solution, given by Alnitak。我发现他的方式更简单。 :)

答案 2 :(得分:0)

基础架构包括访问dns服务器以添加通配符条目,并在Apache中重写规则。

尝试以下答案:

或此链接:

答案 3 :(得分:0)

如果您使用的是Linux服务器,我假设您使用Apache作为您的网络服务器。

您必须为子域和虚拟主机设置正确的DNS路由。

虚拟主机设置起来相当容易,但我不确定在进行中动态执行它们是多么容易。

大多数情况下,编辑apache配置文件并添加以下内容非常简单:

Port 80
ServerName www.mydomain.com

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/user-bob
ServerName bob.mydomain.com
...
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/user-sally
ServerName sally.mydomain.com
...
</VirtualHost> 

VirtualHost Documention可能会对您有所帮助。

答案 4 :(得分:0)

Apache允许您根据单个服务器上的子域指定任意数量的“站点”。创建一个包含相应子域信息的新“网站定义”文件以及正确的DNS通配符,可以满足您的需求。

换句话说,过程是这样的:

  1. 设置通配符,以便* .mysite.com指向正确的服务器。
  2. 当新用户注册时,创建正确的Apache网站定义文件 - 您可能有一个基本模板,您可以将正确的子域信息放入并保存。
  3. 让Apache重新阅读其配置。
  4. 利润。
  5. 重要这是基于Debian风格的Apache配置,其中配置文件包含在目录中,主配置读取该目录中的所有配置文件。这将大大简化事情,因为添加/删除子域意味着添加/删除文件,而不是编辑单个文件,因此该过程将更容易自动化。