nginx做为webserver入口,并对指定的路径做代理转发 github里建立仓库 这里不用太多解释了吧,比如我建立的 demo 在服务端安装git 在你的服务器上安装git客户端,并生成你的ssh-key,把生成后的公钥配置到你的github账号设置里,这时候你的服务器就具备你仓库的操作权限了,把你建立的仓库clone到你服务器上,大概的目录结构是这样的: ./wwwroot/ //站点根目录 配置nginx nginx主要功能就是支持静态资源,对非静态资源进行代理转发给后端,我这里用的是nodejs跑的后端服务,配置如下: server { # 如果目录有md则重写到md # 做github更新的勾子 # 代理所有的md到nodejs上 具体对外的什么域,什么端口看你了 配置github钩子 打开 你github仓库地址/settings/hooks,在这里添加一个Webhooks,地址是你更新的路径,我这里是 xxoo.com/update,我使用的事件是push的时候更新 配置后端 其实这里后端只要的功能就是跟github钩子配合更新文件,用啥语言没限制,看你的心情了 把后端建立在demo-server目录,并对外监听81端口(因为nginx转发到81了),遇到更新的路径,则执行cd ../demo && git pull命令更新文件,因为github钩子带的参数非常全,你还可以检测commit message里是否有发布相关的字,就可以达到按需更新了 我这里用的是nodejs,只是处理下.md文档,当然你可以使用nginx+php来搭建php环境 我的nodejs更新钩子文件点这里看 测试钩子 现在你在本地也clone一个你的仓库,并修改文件后push到github,然后你浏览下你的站点,是不是也更新了? 到这里你基于github的站点搞定 在线demo 仓库地址 注意:因为公用仓库你要小心你的隐私,当然土豪的你可以买私有仓库 |