安裝koa
npm install koa --save
安裝koa2項(xiàng)目生成器并創(chuàng)建項(xiàng)目
*(當(dāng)然如果初學(xué)者的話可以先自行搭建,不要用下面的插件)
npm install koa-generator -g
koa2 nodePractice
process.env
process對(duì)象是全局變量昼榛,它提供當(dāng)前node.js的有關(guān)信息,以及控制當(dāng)前node.js的有關(guān)進(jìn)程剔难。因?yàn)槭侨肿兞康ㄓ欤鼘?duì)于node應(yīng)用程序是始終可用的,無(wú)需require()偶宫。
既然process都是一個(gè)對(duì)象了非迹,env自然是它的一個(gè)屬性,這個(gè)屬性返回包含用戶環(huán)境信息的對(duì)象纯趋。在終端輸入node后憎兽,在輸入process.env可以看到打印出來(lái)的信息。
- 但是Windows 和mac 電腦上的設(shè)置是不一樣的吵冒,為了可以跨平臺(tái)的設(shè)置和使用環(huán)境變量纯命,需要安裝cross-env
安裝cross-env
npm install --save-dev cross-env
可以在 package.json 中配置相關(guān)的端口和環(huán)境(port 3001 環(huán)境:local)
"scripts": {
"start": " cross-env PORT=3001 ENV=local node bin/www ",
"dev": "./node_modules/.bin/nodemon bin/www",
"prd": "cross-env PORT=3001 ENV=pro pm2 start bin/www",
//(pm2 是一個(gè)帶有負(fù)載均衡功能的Node應(yīng)用的進(jìn)程管理器.當(dāng)你要把你的獨(dú)立代碼利用全部的服務(wù)器上的所有CPU,并保證進(jìn)程永遠(yuǎn)都活著,0秒的重載, PM2是完美的)
"test": "echo \"Error: no test specified\" && exit 1"
},
通過(guò)scp相關(guān)命令將本地項(xiàng)目傳入服務(wù)器相關(guān)目錄
scp -r /Users/weiwang/nodepractice/* root@服務(wù)器ip:/root/nodeProject
但是這樣有一個(gè)弊端,無(wú)法篩選不想上傳的文件夾
通過(guò)下列方式重新上傳項(xiàng)目: ( --exclude= 剔除node_modules目錄 痹栖,這個(gè)后邊一定要跟上項(xiàng)目路徑)
rsync -avP --exclude=node_modules/ 項(xiàng)目本地地址 root@服務(wù)器ip:/root/node
啟動(dòng)項(xiàng)目
npm run prd
配置nginx 反向代理
正常來(lái)說(shuō) nginx下就一個(gè)配置文件亿汞,nginx.conf , 如果所以的東西都放在這里管理起來(lái)不方便,我們可以在 conf.d 目錄下進(jìn)行創(chuàng)建配置文件 node.conf,然后在nginx.conf 中的http 塊中加一句話就可以了:
include /etc/nginx/conf.d/*.conf;
node.conf 文件:
server {
listen 9090; //服務(wù)監(jiān)聽(tīng)的端口
server_name 不能為空 ; // 自己服務(wù)器域名
ssl on;
ssl_certificate /etc/nginx/1_wangcarl.com_bundle.crt; // https ssl證書相關(guān)配置
ssl_certificate_key /etc/nginx/2_wangcarl.com.key; // https ssl證書相關(guān)配置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個(gè)協(xié)議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個(gè)套件配置
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:3001/; //本地項(xiàng)目監(jiān)聽(tīng)的端口 反向配置
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
reload nginx 服務(wù)器
nginx -s reload
- 這里邊有一個(gè)坑:就是另起的一個(gè)配置文件一定要先配置根路徑 / 要不配置是不起作用的
最后 就可以通過(guò)訪問(wèn)自己域名下的端口進(jìn)行相關(guān)api 測(cè)試了
附pm2命令教程:pm2