写在前面
很久之前,在开始写blog的时候,第一篇就是如何用hexo以及github搭建自己的个人博客。当时是参照的朋友的博客写的,其中还有一部分是关于绑定自己域名的。不过当时因为自己懒就没写。现在刚好填个坑.
git服务器搭建
之前是上传到GitHub上,现在自然是上传到自己的git服务器上。至于服务器自己选择购买就可以了,具体还需要安装nginx以及git。至于安装步骤这里就略过了。然后一般来讲是为git单独创建一个用户。具体命令如下,比如用户名就是git。
|
|
然后切换到git用户并切换到对应目录。这里选择使用ssh认证,所以要做相应的准备。并将公钥上传至服务器.
然后为了安全考虑,将git用户限制仅能使用git-shell,也就是禁止ssh登陆进行操作,比如多人协作的情况下就有必要做这样的限制了。这里自己考虑设置即可。使用chsh git -s $(which git-shell)
指令即可,一般来说,安装git都会自带git-shell的。这里就直接使用了。
到此,服务器的认证工作就准备结束。接下里就是新建git仓库.
以blog为例.在git用户目录下执行以下操作.
|
|
这时候就可以在本地机器中git clone检查下是否生效。
git clone ssh://git@host:port/home/userName/blog.git
这里如果是默认端口的话可以省略协议名,但是因为部分vps会屏蔽一些常用端口,所以如果有这方面的限制的话可以参照上面的格式。
如果是之前已经有hexo项目的话,修改_config.yml
文件中的repo使其与上面git clone的地址一致即可。修改完成后执行hexo 相关命令校验。
最后一步就是如何将hexo 博客项目部署到nginx了。当然前提是安装好nginx.这里就不多做描述。(其中需要注意的是如果想仅仅在git用户下就完成所有操作的话,需要注意nginx安装时–prefix指定安装目录.还有就是非root用户不能使用1024以下端口问题,可以考虑使用以下命令,
|
|
这样就能以git用户启动nginx了。当然还有其他解决方法,这里不多说了。
最后则是修改blog.git/hooks中的post-update文件实现每次更新时自动将html文件部署到nginx。具体内容如下
|
|
这样就实现每次提交后自动发布的功能了,这时候已经可以直接用vps的ip访问看看了。
当然这里可以考虑在nginx中增加限流设置。常见的比如:
http下
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server下
limit_req zone=one burst=5 nodelay;
(限制请求数策略平均10/s )
http下:
limit_conn_zone $binary_remote_addr zone=addr:10m;
server下:
limit_conn addr 1
(限制单ip连接数1)
…等等等等依据自己实际情况设置。
这里为止,git服务器就搭建好了。
域名绑定
这时候依旧只能通过ip访问,我们需要去购买一个域名,这个可以参考开头给出的我朋友的博客内容。重点是如何绑定呢。这里以godaddy为例。先点击用户下的我的产品进入以下页面
接着点击图中框出的DNS按钮,接着点击右下角的添加.出现如下图的界面
其中类型选择A,主机@就是默认域名,如果填充内容的话就类似是二级域名。比如填充test就是test.xxx….指向就是vps的公网地址了。填写完成之后保存。就可以等待生效了。这时候还记得上面提到的git clone的地址以及config文件中修改的remote地址吗。这里就可以用域名替换ip地址了,不过依旧会被转换回来..
具体的域名绑定可以参考这篇文章
至此,所有的内容就都结束了~
最后
很久没更了,刚好重新开始,顺便填个坑。内容不多,写的很难受,表达的也很奇怪。但是作为新的开始,希望自己能够坚持下去。其实这种方式费时费力,不如买个域名直接链接到简书一类的网站,那就轻松很多了~