【VPS/DNS/Nginx】Blog域名,服务器转移
世界Skill
由于某些原因我将Blog的域名从dtysky.github.io转移到了dtysky.moe,并且由于另一些原因将服务器转移到了某家的VPS上(正好有Github学生包的Digitalocean的优惠,可以用一年),这二者加上Dnspod提供的解析服务,基本足够满足我以后的某些需求了,比如某些项目的发布和Wiki,比如准备在一个半月内发布的这个FPGA Imaging Library。
1.注册域名:
首先去Godaddy注册了dtysky.moe域名,这个没什么特别需要注意的,不过有朋友推荐moe域名(或者说泛ACG域名,比如.lu .wtf啥的,有没人想搞个"foreveralone.wtf.lu.rip"哈哈哈)在hostker买,看了一下的确要便宜不少(差不多一半),如果一定要在Godaddy购买的话,建议去搜一下优惠码,我就优惠了30%...
2.注册Dnspod并添加网站:
由于Godaddy提供的DNS解析可能被墙,所以建议去Dnspod注册一个账号,随后将你的域名添加进去,之后然后按照这里的教程在Godaddy上修改你的域名服务器,生效需要十几分钟到几十个小时。
改完域名服务器后,在Dnspod的控制台对你的域名添加DNS记录,记录类型啥的知识这里就不说了,总之,至少建立一条记录类型为A的记录,主机记录填写@,也就是根域名,随后将记录值指向你的服务器IP,对于这个IP的选择:
1.继续使用Github-pages:
如果你仍然想使用Github的github-pages服务,那么在这里找到你需要的IP地址,填上,并且再建立一条类型为CNAME的记录,主机记录填写www(如果你期望将根域名作为你的blog地址)或者其他(将二级域名作为blog地址,比如blog),记录值指向你原来的Github-pages的地址就OK了(比如dtysky.github.io)。
之后,在你的Github-pages工程根目录下新建一个名为CNAME的文件,把你的域名(比如dtysky.moe)填进去就OK。
2.使用自己的服务器:
如果你想使用自己的服务器(搭建服务器可以参考下面),那么就将服务器IP填上,随后再建立一条A记录,主机记录填写*,也就是泛解析,在泛解析下,所有的二级域名都会被解析到指定的记录值,记录值同样填写服务器IP。
3.购买VPS并配置服务器:
由于每个人选择的VPS服务商不同,所以如何购买就不赘述了,要注意在选择VPS类型的时候,按照需求即可,对于挂几个静态网站而言,512内存完全够了。。。系统的选择,我这里实例用的是Ubuntu,看需求吧(俺不是xxxer,见谅)。
1.准备:
建立了VPS后,应该可以看到服务商给了你一个IP地址,这个IP就是上面那个记录值需要的IP,这个IP同样也要用于管理你的VPS。
至于VPS的安全协议,随便吧,懒点就SSH,下个PuTTYGen生成一个就成,使用说明自己找吧,挺简单的。
接下来就是实际的服务器配置了,这里建议首先备好工具PuTTY和Winscp,前者是命令行环境,用于调试,后者是FTP环境,用于文件管理。
2.配置
首先打开PuTTY,按照你选的安全协议连接到服务器,之后安装nginx,nginx是一个HTTP和反向代理服务器,这里用来做域名管理,安装只需要执行以下命令行代码:
apt-get update
apt-get install nginx
等待安装完成,完成后首先执行以下命令启动以下并检测状态(假定安装使用默认设置):
/etc/init.d/nginx start
/etc/init.d/nginx status
如果显示not running,一般是80端口被占用,要么在配置文件改端口,要么停止冲突的服务,如何查看端口被某个服务占用请自行谷歌。
解决冲突问题或者需要更改配置来解决冲突或者没有冲突的,可以进行配置文件管理了,打开Winscp,连接到服务器,打开以下文件夹:
/etc/nginx
为了方便管理,我们新建一个名为vhosts的文件夹,顾名思义就是“虚拟主机”的意思,随后打开nginx.conf文件,在
http {
.....
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
的最后添加这一句:
include /etc/nginx/vhosts/*.conf;
然后根据你要管理的域名建立若干配置文件,比如我要管理dtysky.moe和fil.dtysky.moe,我就建立了:
dtysky.moe.conf
fil.dtysky.moe.conf
然后根据建立虚拟主机的语法修改每个配置文件就可以了,比如我打开dtysky.moe.conf文件,写入以下内容:
server {
listen 80;
server_name dtysky.moe;
root /www/dtysky.moe;
index index.html index.htm;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.dtysky.moe;
location / {
rewrite ^/(.*)$ http://dtysky.moe/$1 permanent;
}
}
想解决上面端口冲突的朋友可以把这里的端口(listen 80;)改成别的,同时还要对enable-site/default文件进行同样的修改。
第一个server内表明将域名dtysk.moe的请求定向到/www/dtysky.moe文件夹下,这个文件夹就是我本地放blog资源的文件夹,你可以按照你的需求更改。
第二个server下的内容表示将www.dtysky.moe的请求重定向到dtysky.moe,具体请自行学习nginx的语法规则。
fil.dtysky.moe.conf基本是同样的写法,如下:
server {
listen 80;
server_name fil.dtysky.moe;
location / {
root /www/fil.dtysky.moe;
index index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
当然这不是唯一的方法,我们同样可以直接把每个虚拟主机的配置都直接写到nginx.conf内,看需求了。
配置完成后,用以下命令对nginx进行重启:
/etc/init.d/nginx reload
/etc/init.d/nginx restart