Git+Nginx搭建远程Web服务器
Git+Nginx搭建远程Web服务器
一、服务器端配置
1. 创建git文件夹用于存放网站文件
$ cd
$ mkdir .myblog
$ cd .myblog/
$ git init --bare

2. 在服务器选择一个放置网站的目录,假设这个目录为/var/www/myblog
$ mkdir -p /var/www/myblog
$ cd /var/www/
$ git clone ~/.myblog myblog
3. 自动部署
git 有个功能叫做hook,也就是说在我们提交代码的时候会触发一些操作,这就是hook Git的挂钩(Hook)主要包含:
applypatch-msg post-update pre-rebase commit-msg pre-applypatch update post-commit pre-commit post-receive prepare-commit-msg
我们要用到的是post-update这个hook 进入到我们的git服务器的文件夹~/.myblog/hooks 进入到hook文件夹 使用ls命令可以看到许多hook脚本的sample

$ cd ~/.myblog/hooks
$ vim post-update

新建一个post-update脚本 输入以下命令
#!/bin/sh
cd /var/www/myblog
env -i git pull
给新建的post-update赋予权限
$ chmod +x post-update
4..配置nginx
编辑nginx的配置文件/etc/nginx/sites-available
$ sudo vim /etc/nginx/sites-available/default
###### 编辑以下内容:
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/myblog;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

这里主要修改server_name为你的域名 修改root目录为hexo静态文件的目录,以上面目录举例/var/www/myblog要注意nginx需要有该目录的文件读取权限
$ sudo chown -R pi:pi /var/www

重启nginx:
$ sudo nginx -s reload
服务端配置完成!!!
二、客户端配置
1. 通过ssh秘钥和树莓派建立连接
2. 配置public推送
由于树莓派性能不强劲,所以采用在本机用hexo生成public文件夹。用git提交生成好的public文件夹到树莓派。具体提交方法采用hexo的hexo-deployer-git插件。
$ cd myblog
$ vim _config.yml
将deploy配置下的repo参数改为刚刚在树莓派上新建的.myblog路径。

每次维护完项目后输入: hexo d 即可完成推送。

大功告成!!!
最后附上成果图:


浙公网安备 33010602011771号