准备工作

Linux环境

  1. Linux已配置Git环境,创建了对应的git用户
  2. Linux已安装Nginx环境
  3. 具有固定IP

开始构建

创建Linux上的Git仓库

  1. 给git用户添加ssh密钥

    1
    2
    3
    4
    5
    6
    su - git #切换到git用户目录下
    mkdir -p ~/.ssh #在该目录下创建ssh文件
    touch ~/.ssh/authorized_keys #生成授权keys
    chmod 600 ~/.ssh/authorzied_keys
    chmod 700 ~/.ssh
    vim ~/.ssh/authorized_keys #将ssh密钥粘贴进去
  2. 创建git仓库并使用git-hooks实现自动部署

    1
    2
    3
    4
    5
    mkdir -p /var/repo    #新建目录,这是git仓库的位置,虚拟库,实际后续的仓库文件使用hook映射到其他路径,方便文件管理
    mkdir pp /var/www/hexo #创建实际的网站文件路径
    cd /var/repo #转到git仓库的文件夹
    git init --bare blog.git #创建一个名叫blog的仓库
    vim /var/repo/blog.git/hooks/post-update #编辑映射关系,注意自己的名称和路径
    • 映射内容

      1
      git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
    • 给post-update路径授权,使git用户可访问

      1
      2
      3
      4
      cd /var/repo/blog.git/hooks/ 
      chown -r git:git /var/repo/
      chown -r git:git /var/www/hexo
      chmod +x post-update #赋予其可执行权限

配置Nginx环境

  1. 配置文件

    1
    2
    cd /etc/nginx/conf.d/ #进入nginx配置文件路径
    vim blog.conf # 创建blog配置文件
    • blog配置文件内容

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      server {
      listen 80; #开放的端口
      server_name 域名地址; #自己的域名或者IP
      root /var/www/hexo/; #网站文件根路径
      server_tokens off;
      error_page 404 /404.html;
      location = /404.html {
      root /var/www/hexo/;
      }
      if ($host ~ "\d+\.\d+\.\d+\.\d") {
      return 404;
      }
      }
      server {
      listen 443 ssl; #配置https
      server_name 域名地址; #自己的域名或者IP
      server_tokens off;
      ssl_certificate ***.crt; #https的证书
      ssl_certificate_key ***.com_key.key; #https的证书
      location / {
      root /var/www/hexo/;
      }
      error_page 404 /404.html;
      location = /404.html {
      root /var/www/hexo/;
      }
      }
  2. 以上完成环境配置及关联

  3. 启动nginx,进行访问