git地址html
推薦瀏覽器開發者工具開啓手機設備模式node
前提:買個ESC、彈性公網ip、域名react
本地應該都有.ssh目錄,而且生成了公私鑰,將本地id_rsa,id_rsa.pub scp到服務器 /.ssh目錄webpack
之因此把私鑰也上傳上去 要git clone git@github.com的方式克隆倉庫nginx
以後,登陸服務器git
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
如今就能夠免密登陸服務器github
git: apt-get install git web
mongodb: apt-get install mongodb 改端口,加認證redis
redis: apt-get install redis-server
nvm
git clone https://github.com/creationix/nvm.git .bashrc文件頭部添加: source ~/nvm/nvm.sh nvm install v8.2.1(安裝node指定版本)
pm2
npm install -g pm2
**pm2提供了小巧但強大的部署功能,
它拉取git倉庫指定分支的代碼 到咱們指定的服務器的指定目錄,而後執行指定腳本**
本地項目中 在以前介紹的ecosystem.config.js文件中添加
deploy: { "production": { user: "root", host: ['118.190.208.49'], ref: "origin/master", repo: "git@github.com:xiyuyizhi/movies.git", path: "/root/www/movies_be", "post-setup": "ls -la", "post-deploy": "cd be && npm install && pm2 kill && pm2 start ecosystem.config.js --env production", "env": { "NODE_ENV": "production" } } }
package.json中添加
"scripts": { "start": "pm2 start ecosystem.config.js", "test": "mocha --watch", "setup":"pm2 deploy ecosystem.config.js production setup", "deploy":"pm2 deploy ecosystem.config.js production" }
以後本地
npm run setup 初始化遠端目錄,只須要執行一次
以後每次部署只須要執行 npm run deploy就能夠了。
前端webpack構建後的build目錄下的文件能夠寫個腳本scp到服務器,但這裏借用一下pm2的部署功能來部署前端代碼。
本地前端目錄下新建ecosystem.config.js文件
module.exports = { deploy: { "production": { user: "root", host: ['118.190.208.49'], ref: "origin/master", repo: "git@github.com:xiyuyizhi/movies.git", path: "/root/www/movies_fe", "post-setup": "ls -la", "post-deploy": "cd /root/www/front && rm -rf * && cd /root/www/movies_fe/current/fe/build && cp -r . /root/www/front", } } }; 主要是post-deploy中的腳本:將服務器部署目錄下的前端build代碼複製到nginx要訪問的指定目錄下
nginx sites-enabled目錄下,新建xiyuyizhi.xyz.conf
server{ listen 8080; server_name xiyuyizhi.xyz; //多個域名公用同一個端口,經過這個server_name轉向不一樣路徑 root /root/www/front; location / { try_files $uri $uri/ /index.html; //找不到頁面時轉向index頁面,解決前端單頁面history方式路由問題 } location /api{ proxy_pass http://localhost:8000; //代理的後端服務地址 } }
經過域名直接使用80端口要先備案,因此這裏使用了8080端口
nginx nginx.conf 中開一下gZip壓縮。