vps实现私人代码托管并用nginx部署hexo
个人博客
原本我的博客是通过github pages搭建的,但由于一些众所周知的原因,即使套上了CDN依旧是访问状态令人堪忧,经常会造成各种各样的问题,并且由于不存在服务器也不好进行进一步的管理,更不好完成公安备案。因此现在尝试在不影响博客更新部署体验的前提下,利用git搭建一个私人的代码托管平台,并自动化更新新提交的博客更新内容。
整体思路:
1 在云服务器上建立私人git服务器并配置本地仓库
2 在配置文件中设置push到云服务器上的私人仓库。
3 仓库中设置git钩子将已上传的静态资源拷贝到自定义目录下
4 通过nginx部署web服务,配置静态资源访问目录到自定义目录。
5 打包上传hexo静态文件并上传到服务器上的私人仓库
演示vps:CentOS 7
文章目录
- 步骤一:建立私人git服务器
- 步骤二:设置hexo的配置文件
- 步骤三:设置git钩子
- 第四步:修改nginx配置文件
- 第五步:打包上传hexo静态文件
步骤一:建立私人git服务器
连接上vps,我这里就在/home下做演示。
$ yum install git # 如果没有安装过git的话需要进行这一步
$ mkdir /home/blog.git
$ cd blog.git
$ git init --bare # 完成初始化
到此已经完成git的初始化。我们打开本机的终端,测试一下是否能连接上。
$ git clone root@server_ip:/home/blog.git
root为vps的用户名
server_ip为vps的ip
/home/blog.git为初始化的git远程仓库
如果能连接上则继续,不行的话将本机的ssh公钥粘贴到服务器的.ssh目录中的authorized_keys文件里。
步骤二:设置hexo的配置文件
打开hexo根目录下的_config.xml_,修改下列字段
deploy:type: gitrepo: root@server_ip:/home/blog.gitbranch: master
步骤三:设置git钩子
首先还是要安装Nginx,具体看我这篇博客:点我。
假设我们就把博客文件放到nginx的默认网站目录(/usr/share/nginx/html)
$ cd /home/blog.git
$ cd hooks
$ vi post-receive
键入以下代码
#!/bin/bash -l
GIT_REPO=/home/blog.git # git仓库地址
TMP_GIT_CLONE=/home/tmp/blog # 存放网页临时文件
PUBLIC_WWW=/usr/share/nginx/html # web服务的网页文件
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}
cp -rf ${TMP_GIT_CLONE} ${PUBLIC_WWW}
其中2~4行是需要修改的。并且临时目录/home/tmp需要自行创建。
然后需要给post-receive增加可执行权限
$ chmod +x /home/blog.git/hooks/post-receive
第四步:修改nginx配置文件
$ nginx -t # 查看配置文件所在目录
$ vi /etc/nginx/nginx.conf
最后重启nginx服务即可完成自动化部署
$ nginx -s reload
第五步:打包上传hexo静态文件
进入hexo目录打开终端
hexo cl
hexo g
hexo d
会提示让你输入ssh的密码,输入即可上传成功。
vps实现私人代码托管并用nginx部署hexo相关推荐
- 免费的私人代码托管(bitbucket) 和 常用git指令
转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台,github,googlecode, SourceFor ...
- 2021最新 阿里云Centos7+Nginx部署Hexo静态博客
[限时]1年86元,3年229元,用来建站和编程学习[限时领取阿里云2000元建站礼包] 前言 之前在服务器用WordPoress,Eblog程序搭建过个人博客,因为平时也不写什么,导致服务器过期也没 ...
- 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...
- 运用京东云代码托管、云编译、云部署等产品进行蓝绿部署简单实践
干货 | 运用京东云代码托管.云编译.云部署等产品进行蓝绿部署简单实践 前几天我们以一种较为传统的方式在京东云上简单实践了基于Jenkins+Docker+Git 的CI流程,主要利用一些开源技术来实 ...
- Python3 - Docker 安装部署Gitlab代码托管教程
文章目录 前言 一.安装Gitlab 1.搜索gitlab-ce-zh 2.下载影像 3.启动Git服务 4.查看Gitlab是否已经启动 二.配置Gitlab 1.首先,先进入容器 2.修改gitl ...
- 测试nginx网站代码_在40行以下代码中使用NGINX进行A / B测试
测试nginx网站代码 by Nitish Phanse 由Nitish Phanse 在40行以下代码中使用NGINX进行A / B测试 (A/B testing with NGINX in und ...
- 打造支撑百万用户的分布式代码托管平台
在2017在线技术峰会--首届阿里巴巴研发效能嘉年华上,来自研发效能事业部的杨再新分享了<打造支撑百万用户的分布式代码托管平台>.他主要介绍了GIT和SVN思想差异.开源的代码托管平台的挑 ...
- docker compose快速按照GitLab代码托管工具以及GitLab基本用法
Git 与 SVN 区别 GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目.它拥有与 Git ...
- 基于git和svn的开源代码托管平台
文章目录 1.基于Git在线托管平台 GitHub & Bitbucket & GitLab & Coding 的对比分析 基本特征 哪个是开源的服务或产品 开源与协作,谁是最 ...
最新文章
- 把window中换行符(^M)改为linux的换行符(\r)
- GitOps:Kubernetes多集群环境下的高效CICD实践
- curl -O 下载文件
- Ceph分布式存储系统-性能测试与优化
- keras优化算法_自然场景文本识别(OCR),keras-yolo3-densenet-ocr
- JavaScript数据结构和算法简述——数组
- mysql完成未完成_MYSQL SQL模式 (未完成)
- 你知道这些使用Linux虚拟桌面的益处吗?
- webWMS开发过程记录(三)- 需求分析(略)
- WIN7 7100+TOAD最新版本9.7.2.5切换到SCRIPT显示注释的时候是乱码。表数据中文显示正常!求解决方案。...
- 查看本机IP地址、测试本机与其他设备是否连通、查本机IP归属地
- HDU - 4747
- Windows Git 多用户多仓库配置
- android 9.0 c7Pro,透心凉!三星Galaxy C7 Pro上线,还内置热管
- Carson带你学数据结构:手把手带你了解 ”图“ 所有知识!(含DFS、BFS)
- 各类游戏对应的服务端架构
- 绿色智慧档案馆构想之智慧档案馆环境综合管控一体化平台
- Yii框架中setFlash和getFlash函数的用法
- nodejs探秘:require加载模块的原理及代码实现
- 遇到vmware提示客户机操作系统已禁用 CPU.请关闭或重置虚拟机