设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 教程 > 正文

nodejs+github建立站点的步骤细解

发布时间:2022-06-14 10:49 所属栏目:61 来源:互联网
导读:下面来为各位介绍一篇关于nodejs+github建立站点的步骤,希望文章能够帮助到各位朋友. 使用的工具 nginx做为webserver入口,并对指定的路径做代理转发,githubgit做为源代码存放,nodejs我这里还用的node做为server后端语言,当然你完全可以使用php. 创建步骤 git
  下面来为各位介绍一篇关于nodejs+github建立站点的步骤,希望文章能够帮助到各位朋友.
 
  使用的工具
 
  nginx做为webserver入口,并对指定的路径做代理转发,github&&git做为源代码存放,nodejs我这里还用的node做为server后端语言,当然你完全可以使用php.
 
  创建步骤
 
  github里建立仓库,这里不用太多解释了吧,比如我建立的 demo,在服务端安装git,在你的服务器上安装git客户端,并生成你的ssh-key,把生成后的公钥配置到你的github账号设置里,这时候你的服务器就具备你仓库的操作权限了,把你建立的仓库clone到你服务器上,大概的目录结构是这样的:
 
  ./wwwroot/              //站点根目录
      ./demo/             //克隆的仓库目录
      ./demo-server/      //为了更新钩子,一会你就知道是做啥的了
  友情提示:git
 
  配置github钩子
 
  打开 你github仓库地址/settings/hooks,在这里添加一个Webhooks,地址是你更新的路径,我这里是 xxoo.com/update,我使用的事件是push的时候更新.

  配置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;
      }  --phpfensi.com
  }
  nodejs启用端口81,把.md的文件发到81上,把更新钩子发到81上,站点的根目录是demo,具体对外的什么域,什么端口看你了.
 
  配置后端
 
  其实这里后端只要的功能就是跟github钩子配合更新文件,用啥语言没限制,看你的心情了,把后端建立在demo-server目录,并对外监听81端口(因为nginx转发到81了),遇到更新的路径,则执行cd ../demo && git pull命令更新文件,因为github钩子带的参数非常全,你还可以检测commit message里是否有发布相关的字,就可以达到按需更新了.
 
  我这里用的是nodejs,只是处理下.md文档,当然你可以使用nginx+php来搭建php环境,我的nodejs更新钩子文件点这里看.
 
  测试钩子
 
  现在你在本地也clone一个你的仓库,并修改文件后push到github,然后你浏览下你的站点,是不是也更新了?
 
  到这里你基于github的站点搞定,在线demo 仓库地址,注意,因为公用仓库你要小心你的隐私,当然土豪的你可以买私有仓库.
 
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读