Centos 安装 nginx 及部署 hexo

上一篇文章说把服务器迁移到了 Vultr ,但是晚上丢包达到百分之60以上,遂再次把服务器迁移到 Bandwagonhost ,开启 bbr 丢包很少.而且这次只用了一个半小时就配置完了(我不知道如何能直接把服务器跨运营商转移)

这次 ss-server 偷懒用了秋水逸冰一键安装包.

先安装和配置Nginx

cd /etc/yum.repos.d/

vi nginx.repo

填写如下内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

保存,则会产生一个/etc/yum.repos.d/nginx.repo文件。

下面直接执行如下指令即可自动安装好Nginx:

yum install nginx -y

yum安装 nginx,我们可以通过 系统服务命令 service 来启动或停止

service nginx start     #启动 nginx 服务
service nginx stop      #停止 nginx 服务
service nginx restart   #重启 nginx 服务

nginx -s reload         #重载 conf  文件

输入命令 nginx -t

得到配置文件在/etc/nginx/nginx.conf

然后cd /etc/nginx/conf.ddefault.conf 复制一份出来 cp default.conf blog.conf

修改blog.conf 重启 nginx 服务,就可以了

下面部署 hexo

安装 git:

sudo yum install git

centos 自带有git

创建一个 git 用户,用来运行 git 服务:

sudo adduser git

虽说现在的仓库只有我们自己在使用,新建一个 git 用户显得不是很有必要,但是为了安全起见,还是建议使用单独的 git 用户来专门运行 git 服务

创建证书登录,把自己电脑的公钥,也就是 ~/.ssh/id_rsa.pub 文件里的内容添加到服务器的 /home/git/.ssh/authorized_keys 文件中,添加公钥之后可以防止每次 push 都输入密码,使用 ssh-copy-id -i ~/.ssh/id_rsa git@server

初始化 Git 仓库,我是将其放在 /home/git/repo/blog.git 目录下的:

sudo mkdir /home/git/repo 
cd /home/git/repo
sudo git init --bare blog.git

使用 –bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。

配置 git hooks

我们这里要使用的是 post-receivehook,这个 hook 会在整个 git 操作过程完结以后被运行。

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

cd /home/git/repo/blog.git/hooks
vi post-receive

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

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

注意,/var/www/blog 要换成你自己的部署目录,一般可能都是 /var/www/html。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。

不要忘记设置这个文件的可执行权限:

chmod +x post-receive

改变 blog.git 目录的拥有者为 git 用户:

sudo chown -R git:git blog.git

禁用 git 用户的 shell 登录权限。

出于安全考虑,我们要让 git 用户不能通过 shell 登录。可以编辑 /etc/passwd 来实现,在 /etc/passwd 中找到类似下面的一行:

git❌1001:1001:,,,:/home/git:/bin/bash 将其改为:

git❌1001:1001:,,,:/home/git:/usr/bin/git-shell 这样 git 用户可以通过 ssh 正常使用 git,但是无法登录 sehll。

至此,服务器端的配置就完成了。

本地配置

配置你的 hexo 博客可以自动 deploy 到服务器上,再也不用 ftp 上传了。

修改 hexo 目录下的 _config.yml 文件,找到 [deploy] 条目,并修改为:

deploy:
  type: git
  repo: [email protected]:/home/git/repo/blog.git
  branch: master

要注意切换成你自己的服务器地址,以及服务器端 git 仓库的目录。

本地配置就是如此地简单。至此,我们的 hexo 自动部署已经全部配置好了。

使(zhuang)用(bi)

从此以后,要发新博客的步骤不要太简单:

hexo new "new-post"
# bla..bla..bla..
hexo clean && hexo generate --deploy

有没有很酷很方便,一条命令就可以将博客自动部署到自己的 VPS 上了,开始快乐地写博客吧。

(很懒,里面很多话都是复制的,只是为了下次在瞎折腾能参考一下)

提示

如果遇到 hexo d 提示已经完成,但是服务器断无变化,可尝试删除博客目录下的 .deploy_git


参考


comments powered by Disqus