预览目录
配置云服务器
1.安装nginx
2.安装node.js
3.安装git
本地配置
因为自己喜欢瞎拍一些东西,希望弄个博客记录记录,原以为就在eiblog的基础上添加相册栏目,自定义一些东西,但自己的前端知识几乎为0,行动起来,需要点时间。看到hexo上有很多适合的主题,决定用hexo搭建一个,通过git hooks就可线下推送,线上自动拉取部署。
其原理是:通过本地渲染静态文件,将文件推送到GitHub仓库,在服务器上再通过git-hooks同步网站根目录。这样就完成了线下一次操作,线上自动更新的步骤。
废话不多说,看操作。
配置云服务器
在配置云服务器前,你得首先本地搭建好你的hexo博客,并可以通过hexo d部署到GitHub。
其步骤很多博客都有详细的描叙,不做累述。
1.安装nginx
在屈屈的博客中很多关于Nginx的按照,配置,你可以看看。
在安装完成后你可以在配置中单独指定一个配置,或直接修改原配置指向你准备存放静态文件的文件夹。我用的前者。在nginx.conf文件添加指定配置文件路径,
 include            /data/hexo/nginx/cong.d/*.conf;
在/data/hexo/nginx/cong.d/ 下添加配置文件razeencheng.com.conf
NGINX
server {
    listen                       443;
    server_name                  razeencheng.com;
    server_tokens                off;
    access_log                   /data/hexo/nginx/logdata/nginx.log;
    # ip 黑名单
    include                      /data/hexo/nginx/ip.blacklist;
    ssl_ct                       on;
    # 中间证书 + 根证书
    ssl_trusted_certificate      /data/hexo/nginx/ssl/razeencheng.com.pem;
    ssl_certificate              /data/hexo/nginx/ssl/razeencheng.com.pem;
    ssl_certificate_key          /data/hexo/nginx/ssl/razeencheng.com.key;
    ssl_ct_static_scts           /data/hexo/nginx/ssl/scts/ecc/;
    ssl_dhparam                  /data/hexo/nginx/ssl/dhparams.pem;
    ssl_ciphers                  EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers    on;
    ssl_protocols                TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache            shared:SSL:50m;
    ssl_session_timeout          1d;
    ssl_session_tickets          on;
    # ssl stapling
    ssl_stapling                 on;
    ssl_stapling_verify          on;
    resolver                     114.114.114.114 8.8.8.8 valid=300s;
    resolver_timeout             10s;
    if ($request_method !~ ^(GET|HEAD|POST|OPTIONS)$ ) {
        return                   444;
    }
    location / {
        root /data/hexo/nginx/html;
        index index.html;
    }
}
从配置文件也可看出,我将网站的根目录放在/data/hexo/nginx/html文件夹。
2.安装node.js
$ yum install nodejs -y
3.安装git
$ yum install git -y
新建git用户,添加权限。
BASH
## 新建git用户
$ adduser git
$ chmod 740 /etc/sudoers
$ vim /etc/sudoers
## 添加下面一行设置git权限
git   ALL=(ALL)     ALL
$ chmod 440 /etc/sudoers
之后我们初始化一个Git的裸仓库,它只是为共享而存在,不需要工作区。
BASH
$ su git
$ cd /data/hexo
$ git init --bare hexo.git
如果你之前你有设置过ssh登陆,可以测试一下是否测试成功。
$ ssh git@ip(or domain)
如果能登录的话就设置OK了。
如果没有设置,可看ssh免密登陆,设置成功及OK。
为git用户添加ssh key
BASH
$ su git 
$ cd ~
$ mkdir .ssh
# 然后将你电脑上的公钥复制到authorized_keys,保存。
$ vim /home/git/.ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ chmod 700 .ssh/
赋予git对网站目录的所有权。
$ chown git:git -R /data/hexo/nginx/html
配置git hooks。
$ cd ~/data/hexo/hexo.git/hooks
编辑post-receive文件, 输入如下内容保存退出。
BASH
# !/bin/bash
rm -rf /tmp/hexo
git clone /data/hexo/hexo.git
rm -rf /data/hexo/nginx/html
cp -rf /tmp/hexo/* /data/hexo/nginx/html
然后赋予脚本执行权限。
$ chmod +x post-receive
之后重启nginx就可以了。
本地配置
修改_config.yml的deploy内容,例如:
YAML
deploy:
  type: git
  repository: blogit:/data/hexo/hexo.git
  branch: master
.ssh/config这么配置的。
SSH
Host blogit
    HostName 120.78.181.210
    User git
    IdentityFile ~/.ssh/blog.pem
以后正常的hexo d既可以一键部署。
转载:RAZEEN 博客
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。