Fork me on GitHub

Nginx搭建hexo博客

  • 很多同学喜欢把hexo博客搭建在gitpage或者codingpage上,今天我尝试了下把它搭建在vps上。实现gitpage、codingpage和vps同步部署。
  • 首先我们要弄明白,它的原理。hexo的部署工作其实就是把,hexo根目录下的public文件夹中的内容推送到服务器上。我们甚至可以直接把public文件夹中的内容拷贝到,nginx的网站根目录下来实现访问。但这样太麻烦了,我们可以通过设置来达到一次部署多端推送的目的。

1、服务器环境搭建

  • 1.1安装git和nginx

    1
    2
    3
    4
    yum install git
    yum install -y nginx
    #启动nginx服务
    service nginx start
  • 1.2创建一个网站的根目录(用于存放网站的部署的静态文件)

    1
    2
    #先找到自己的网站目录创建一个新的文件夹blog
    mkdir blog
  • 1.3建立git仓库

    1
    git init --bare blog.git
  • 1.4使用 git-hooks 同步网站根目录

    在这里我们使用的是 post-receive这个钩子,当git有收发的时候就会调用这个钩子。 在 ~/blog.git 裸库的hooks文件夹中,新建post-receive文件。
    1
    2
    3
    #!/bin/bash
    rm -rf /var/www/blog
    git clone /root/blog.git /var/www/blog
    意思就是删除/var/www/blog/下的文件,并将root/blog.git下的文件clone到/var/www/blog目录下,这里注意一下,我这里使用的是cenOS服务器,登录默认给予的是root权限,所以这里的/root即为/home
    然后我们赋予这个文件夹权限:
    1
    chmod +x post-receive
  • 1.5配置Nginx

    1
    vim /etc/nginx/conf.d/blog.conf
    在里面添加:
    1
    2
    3
    4
    5
    server{
    listen 80;
    server_name www.lee1224.com lee1224.com;
    root /var/www/blog;
    }
    重启nginx:
    1
    service nginx restart

2、本地hexo配置

  • 当我们完成了上述服务器端操作时候,就要回到本地,开始配置hexo。
  • 进入我们本地初始化的项目源文件中,看到有一个_config.yml文件,是整个项目的配置文件,打开在最后一行你会发现deploy字样,输入下列信息:
    1
    2
    3
    deploy:
    type: git
    repo: root@IP:blog.git

3、补充

  • 设置完成后发现每次部署都要输入Linux登录密码。我们可以通过配置配置SSH公钥
    1、生成公钥。
    1
    ssh-keygen
    注意: 键入这个命令后,会提示让你给这个公钥配置密码(passphrase),我们既然是为了避免多次输入密码, 这里为什么还要给公钥配置密码呢,所以我们要一路回车,不理他(会出现三次)
    2、然后将本地公钥拷贝到服务器。
    1
    2
    #首先cd到公钥目录
    ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    这条命令由多个语句组成,依次分解开来看:
    (1)”$ ssh [email protected]”,表示登录远程主机;
    (2)单引号中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程shell上执行的命令:
    (3)”$ mkdir -p .ssh”的作用是,如果用户主目录中的.ssh目录不存在,就创建一个;
    (4)’cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾。
    写入authorized_keys文件后,公钥登录的设置就完成了。
  • 到这里就全都配置完毕啦!
本文结束啦 感谢您阅读
路漫漫其修远兮 吾将上下而求索