下面來為各位介紹一篇關于nodejs+github建立站點的步驟,希望文章能夠幫助到各位朋友.
使用的工具
nginx做為webserver入口,并對指定的路徑做代理轉發,github&&git做為源代碼存放,nodejs我這里還用的node做為server后端語言,當然你完全可以使用php.
創建步驟
github里建立倉庫,這里不用太多解釋了吧,比如我建立的 demo,在服務端安裝git,在你的服務器上安裝git客戶端,并生成你的ssh-key,把生成后的公鑰配置到你的github賬號設置里,這時候你的服務器就具備你倉庫的操作權限了,把你建立的倉庫clone到你服務器上,大概的目錄結構是這樣的:
- ./wwwroot/ //站點根目錄
- ./demo/ //克隆的倉庫目錄
- ./demo-server/ //為了更新鉤子,一會你就知道是做啥的了
友情提示:git
配置nginx:
nginx主要功能就是支持靜態資源,對非靜態資源進行代理轉發給后端,我這里用的是nodejs跑的后端服務,配置如下:
- server {
- listen 80;
- server_name github.xuexb.com;
- root "/home/wwwroot/demo";
- autoindex on;
- # 如果目錄有md則重寫到md
- if ( -f $request_filename/README.md ){
- rewrite (.*) $1/README.md break;
- }
- # 做github更新的勾子
- location = /update {
- proxy_pass http://127.0.0.1:81;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- # 代理所有的md到nodejs上
- location ~ /.md$ {
- proxy_pass http://127.0.0.1:81;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- } --Vevb.com
- }
nodejs啟用端口81,把.md的文件發到81上,把更新鉤子發到81上,站點的根目錄是demo,具體對外的什么域,什么端口看你了.
配置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 倉庫地址,注意,因為公用倉庫你要小心你的隱私,當然土豪的你可以買私有倉庫.
新聞熱點
疑難解答