HUANGWANG'S BLOG

如何在VPS上搭建自己的个人blog(二)

接第一节,继续记录我基于hexo搭建blog的经历。这里主要讲述如何使用Git Hooks(此方法看起来特别cool)在本地同步博文至VPS,以及nginx配置文件。

  1. Nginx的配置
  2. Git Hooks的配置
  3. 常见问题

Nginx的配置

什么是Nginx?它是一个Web服务器,能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。

  • 安装好Nginx后,进入/etc/nginx/sites-available,修改default.conf文件。(文件内容的具体含义自行体会)以下是我的conf文件的具体内容(仅供参考,慎套用)。

    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
    28
    29
    30
    31
    32
    server {
    listen 443 ssl;
    add_header Strict-Transport-Security "max-age=63072000;includeSubDomains;preload";
    server_name pstudio.me;
    ssl on;
    ssl_certificate /etc/ssl/cert_chain.crt;
    ssl_certificate_key /etc/ssl/server.key;
    access_log /var/log/nginx/example_access.log;
    error_log /var/log/nginx/example_error.log;
    location ~* ^.+.(ico|gif|jpg|jpeg|png) {
    root /var/www/pstudio/public;
    access_log off;
    expires 1d;
    }
    location ~* ^.+.(css|js|txt|xml|swf|wav) {
    root /var/www/pstudio/public;
    access_log off;
    expires 10m;
    }
    location / {
    root /var/www/pstudio/public;
    if (-f request_filename) {
    rewrite ^/(.*) /1 break;
    }
    }
    }
    server {
    listen 80;
    server_name pstudio.me;
    rewrite ^(.*) https://host$1 permanent;
    }
    }

这样,Nginx的配置基本完成。

Git Hooks的配置

  • 创建git仓库

    1
    2
    3
    sudo mkdir /var/repo
    cd /var/repo
    sudo git init --bare blog.git
  • 配置 git hooks,关于 hooks 的详情内容可以参考这里
    我们这里要使用的是 post-receive 的 hook,这个 hook 会在整个 git 操作过程完结以后被运行。

    在blog.git/hooks 目录下新建一个 post-receive 文件:

    1
    2
    cd /var/repo/blog.git/hooks
    vim post-receive

    在 post-receive 文件中写入如下内容:

    1
    2
    #!/bin/sh
    git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

    注意,/var/www/hexo 要换成你自己的部署目录,一般可能都是 /var/www/html。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
    不要忘记设置这个文件的可执行权限:

    1
    chmod +x post-receive
  • 这样,Git Hooks的配置基本完成。

常见问题

SSH連現時出現「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」解决办法!

看到很多博文上写道删除hosts文件,其实,这样的做法一点都不geek,这里推荐一条命令解决

1
ssh-keygen -R ip or website

注意新建用户的权限问题,为了安全(更geek),可参考Initial Server Setup with Ubuntu 14.04

关于如何写作,请移步hexo 写作

参考