Git Pages是结合git服务操作的web网页托管平台。通过git提交再结合git hook脚本就能很好的将提交的文件上传到web服务虚拟目录里。但是Github、Netlify、Coding等已经提供了免费git pages服务,为什么还要自己在vps上折腾搭建git pages呢?因为这些服务商提供的git pages是有限制的,比如空间容量相对较小、对动态网页支持不完善或者没有、访问速度较慢等。那么自建的git pages的优势就显现出来了。下面就介绍怎么一步步搭建该服务。
¶1、安装Git
1 | yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel |
接下来我们创建一个git用户组和用户,用来运行git服务:
1 | #创建git用户组和git用户 |
¶2、配置ssh秘钥登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub
文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys
文件里,一行一个。
如果没有该文件创建它:
1 | mkdir -p /home/git/.ssh |
客户机
1 | #copy客户端的秘钥到vps的/home/git/.ssh/authorized_keys |
¶3、搭建git仓库
1 | mkdir -p /opt/blog/git |
1 |
|
1 | chown -R git:git /opt/blog/git && chgrp -R git /opt/blog/git && chmod -R 755 /opt/blog/git |
¶4、搭建web服务
需要安装好nginx,可以参考我的另一篇文章《nginx学习笔记》。
这里已经提前通过编译安装的方式把nginx安装到了/opt/nginx目录,然后只需配置nginx即可。
1 | vim /opt/nginx/conf/conf.d/blog.conf |
1 | server { |
1 | #启动nginx(如果没有启动的话) |
¶5、配置https服务
使用 https 就需要配置 SSL 证书 ,SSL证书有免费的和付费的,这里使用的是免费的 Let’ s Encrypt SSL证书。
具体操作参考《通过certbot工具生成ssl证书》。参考该教程使用 certbot 工具通过HTTP 验证模式申请签发多域名证书。
配置nginx web服务
1 | vim /opt/nginx/conf/conf.d/blog.conf |
需求:
http://qcmoke.site
、http://www.qcmoke.site
、https://qcmoke.site
都重定向到https://www.qcmoke.site
,并且图片都能压缩传输。
1 |
|
重载配置
1 | /opt/nginx/sbin/nginx -s reload |
¶6、测试
客户机
1 | git clone git@qcmoke.site:/opt/blog/git/blog.git |
之后浏览器访问http://qcmoke.site
就能访问到push到服务器的index.html
页面了。
📚 参考