这篇文章主要介绍在配置二级域名时候的步骤,主要涉及到nginx、dns的配置,有相同需求的同学可以参考一下。
先简单的说下dns的原理,当你在域名注册商那注册了一个新的域名后,你需要设置你的dns服务器(如dnspod这样)或者不设置也行,本身域名注册商就提供这个服务,可以直接设置域名转发到你的服务器。
因此,当你访问一个新域名的时候,大概过程就是浏览器或查询本地的dns设置,看是否有这个域名,如果存在这访问对应的ip,如果没有再往上级查找,最后到顶级dns服务器上。这里面有很多东西不细说了,推荐大家了解下: DNS原理及其解析过程 。
这里主要是结合我的情况来介绍,我用的dnspod来解析我的域名到webfaction的主机。因此这里有三个东西需要设置才能让二级域名:m.server110.com生效。
第一步当然是dnspod了,这样才能让m.server110.com解析到我的主机
然后还需要配置webfaction能够接受这个域名,这里应该是webfaction有对应的nginx配置或者是其他的域名管理的东西
最后要配置你自己的nginx配置
上面所说的前两个都比较好配置。后面的nginx我当时还是遇到了点问题,有必要记录下来。
m.server110.com并不是对应一个新的django的服务,只是转发到已有的server110.com网站的/m/目录下。因此折腾良久有了如下的配置:
server {listen 9999;
server_name m.server110.com;
charset utf-8;
access_log logs/mserver110.log;
location / {
proxy_pass http://server110/m/;
proxy_intercept_errors on;
proxy_redirect off;
proxy_connect_timeout 60;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
弄完之后,回头看都挺简单。整个过程中最麻烦的是在服务器上直接调试,尤其是网速较慢的情况。