我们的服务器配置出现了问题,我希望能够得到一些帮助,因为它让我们抓狂不已!
基本上,我们在 domain.com 上为用户设置了一个应用程序,并在同一个域上为用户设置了通配符子域。我们希望为用户实现自定义域,就像 tumblr 所做的那样,以便用户为其子域创建 CNAME,例如:
userdomain.com -> CNAME -> user.ourapp.com
不过,在为一个用户设置完之后,他的域名只会路由到我们这边的服务器默认页面。与 plesk 联系后,回复如下:
根据内部 Web 服务器逻辑,基于名称的托管使用 HTTP 标头中的主机名进行工作。仅使用 DNS 中的 CNAME 记录将不起作用,因为 DNS 仅返回新服务器 IP,浏览器将转到该 IP,但旧服务器名称仍保留在 HTTP 标头中。
而 Web 服务器在收到这样的请求后会正常工作,它会尝试查找 userdomain.com 并打开默认虚拟主机(在我们的例子中是 Media Temple Server 页面),但没有成功。
好的,很酷。所以我们稍微编辑了一下配置。我们运行的是 Plesk 10.4,在通配符子域下,我们有一个用于 vhosts 的 httpd.include 文件。
其中有以下内容:
<VirtualHost 64.207.159.248:80>
ServerName "_.ourapp.com:80"
ServerAlias "*.ourapp.com"
UseCanonicalName Off
...
现在,我们尝试删除 ServerName 并仅保留 Alias,并使用 /etc/init.d/httpd reload 重新加载配置,但我们仍然得到默认服务器页面。
我们很困惑。
有人遇到过这个问题吗?有解决办法吗?
提前致谢,沃伦
答案1
浏览器仍会发送Host: userdomain.com
标头,CNAME 记录不会导致重定向。因此,您需要ServerAlias userdomain.com
在配置中使用它。您需要在应用程序中将其userdomain.com
与用户关联。