如何在VPS上搭建自己的个人blog(二)
Nov 21, 2016
接第一节,继续记录我基于hexo搭建blog的经历。这里主要讲述如何使用Git Hooks(此方法看起来特别cool)在本地同步博文至VPS,以及nginx配置文件。
- Nginx的配置
- Git Hooks的配置
- 常见问题
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
32server {
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
3sudo 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
2cd /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 |