【VPS/DNS/Nginx】Blog域名,服务器转移

少女dtysky

世界Skill

时刻2015.04.26

由于某些原因我将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生成一个就成,使用说明自己找吧,挺简单的。
接下来就是实际的服务器配置了,这里建议首先备好工具PuTTYWinscp,前者是命令行环境,用于调试,后者是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

如果不是自己的创作,少女是会标识出来的,所以要告诉别人是少女写的哦。