建議不熟悉 linux 命令的小伙伴同時打開我的另一篇博客linux 常用操作
服務(wù)器購買&配置
- 打開阿里云,選擇購買云服務(wù)器 ECS,這里可以選擇一鍵購買進行快速配置,操作系統(tǒng)選擇 CentOS 7.2 64 位,其他默認或根據(jù)實際需求來,若選擇自定義購買請自行搜索;
- 購買成功設(shè)置賬號密碼后,就可以通過 ftp 工具(我用的是 FileZilla)或者 git 連接我們的服務(wù)器了,這個時候我們也可以打開阿里云的控制臺/云服務(wù)器 ECS 查看購買的服務(wù)器;
- 打開阿里云的控制臺/云服務(wù)器 ECS/網(wǎng)絡(luò)和安全/安全組,在安全組列表點擊配置規(guī)則,點擊快速創(chuàng)建規(guī)則,就可以暴露端口了。比如暴露 80 端口,選擇 HTTP(80),授權(quán)對象填
0.0.0.0/0,其他默認就可以了。暴露其他端口你就在自定義端口選擇,比如暴露 7001 端口,你就在自定義端口選擇 TCP,輸入7001/7001即可。 - 開啟node 性能平臺,點擊創(chuàng)建新應(yīng)用按照操作提示來就行,成功開啟后在項目配置(具體配置看下文))就可以監(jiān)控數(shù)據(jù)了。
連接服務(wù)器
-
git 連接
# ssh remote_username@remote_ip 然后輸入密碼即可 如果ssh不存在,執(zhí)行以下命令即可 # yum install openssh-client 下載客戶端ssh ftp 工具連接(這里以 FileZilla 為例),下載 filezilla 后,點擊新建站點,輸入主機 ip,選擇 sftp 協(xié)議,選擇登錄類型為正常,輸入賬號密碼即可
部署 node 環(huán)境
-
部署 node 環(huán)境
# ssh remote_username@remote_ip 連接服務(wù)器 # wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz 下載node壓縮文件 # tar xvf node-v6.9.5-linux-x64.tar.xz 解壓 # ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node 創(chuàng)建軟連接 # ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm 創(chuàng)建軟連接 # node -v 查看node版本 # npm -v 查看npm版本 -
其他
# yum install vim 下載vim
nginx 安裝&配置
-
nginx 安裝
# yum install epel-release 下載epel-release # yun install nginx 下載nginx # cd /etc/nginx # vim nginx.conf 用vim打開nginx.conf -
修改 nginx.conf
- 修改 user 為 root
- 修改 server 如下,這里 wx 是指向代理另一個 node 微信公眾號項目(運行在 7002 端口,但微信公眾號配置 http 只允許 80 端口,所以設(shè)置代理,我們的 elm 接口運行在 7001 不用代理)
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /root/www/; include /etc/nginx/default.d/*.conf; location /wx/ { proxy_pass http://127.0.0.1:7002/; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } -
啟動 nginx
nginx -t 測試nginx語法是否有誤 nginx 啟動nginx nginx -s reload 重啟nginx,修改nginx.conf后記得重啟 -
其他命令
ps -ef | grep nginx 顯示nginx進程 nginx -s stop 停止nginx nginx -v 查看nginx版本
部署 mongodb
-
安裝 mongodb
# ssh remote_username@remote_ip 連接服務(wù)器 # curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 下載 # tar -zxvf mongodb-linux-x86_64-3.0.6.tgz 解壓 # mkdir data 創(chuàng)建數(shù)據(jù)庫文件夾 # touch mongodb.log 創(chuàng)建日志文件 # cd /usr/local/mongodb/bin # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork 注意fork是后臺啟動,避免又要再開窗口重新連接服務(wù)器再能進行其他操作 # ./mongo 連接mongodb -
配置隨 linux 啟動
在/etc/rc.local 添加如下即可:# rm /usr/local/mongodb/data/mongod.lock 停止可能在運行的mongo # /.../bin/mongod -dbpath /usr/local/mongodb/data -logpath /usr/local/mongodb/mongodb.log -logappend -fork -port 27017 -
設(shè)置權(quán)限
# cd /usr/local/mongodb/bin # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork # ./mongo > use admin > db.createUser( > { > user: "root", > pwd: "123456", > roles: [ { role: "root", db: "admin" } ] > } > ) > db.shutdownServer(); # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork --auth # db.auth("root","123456") -
項目中連接 mongodb(這里以 koa 框架 egg 項目為例,其他 node 請自行查找)
# cnpm i egg-mongoose -S // config/plugin.js exports.mongoose = { enable: true, package: 'egg-mongoose', } // config/config.default.js config.mongoose = { url: 'mongodb://127.0.0.1/eggadmin', options: { // 如果設(shè)置了密碼 // auth: { "authSource": "admin" }, // user: "root", // pass: "123456", } }
部署 node 項目
部署環(huán)境 阿里云 CentOS 7.2 64 位
-
本地項目根目錄(刪除 node_modules,建議依賴在服務(wù)器下載)
# tar -zcvf ../file_name.tgz . 打包 # scp ../file_name.tgz remote_username@remote_ip:/root/www/server 上傳到服務(wù)器 -
服務(wù)器
# ssh remote_username@remote_ip 連接服務(wù)器 # cd /root/www # mkdir server 這里創(chuàng)建server文件夾放node項目代碼 # cd server # tar -zxvf file_name.tgz . 解壓 # cnpm install --production 安裝生產(chǎn)環(huán)境依賴 1. koa項目(express項目類似) # cnpm i -g pm2 下載pm2 # pm2 start bin/www 守護進程啟動 # pm2 restart app_name|app_id 重啟 # pm2 stop app_name|app_id 停止 # pm2 list 查看進程狀態(tài) # pm2 stop all 停止所有應(yīng)用 # pm2 start ./bin/www --watch 監(jiān)聽更改自動重啟 2. egg項目 # npm start 運行 # npm stop 停止 -
阿里 node 性能平臺監(jiān)控
1.koa 項目(express 項目類似)
# wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash 安裝版本管理工具 tnvm # source ~/.bashrc # tnvm ls-remote alinode 查看需要的版本 # tnvm install alinode-v3.11.4 安裝需要的版本 # tnvm use alinode-v3.11. 使用需要的版本新建 config.json 文件如下,從node 性能平臺獲取對應(yīng)的接入?yún)?shù)
{ "appid": "<YOUR APPID>", "secret": "<YOUR SECRET>" }# cnpm install @alicloud/agenthub -g 安裝 agenthub # agenthub start config.json 啟動agenthub # agenthub list 查看 agenthub 列表 # ENABLE_NODE_LOG=YES pm2 start bin/www 使用pm2管理的應(yīng)用2.egg 項目
# cnpm i nodeinstall -g # nodeinstall --install-alinode ^3 # cnpm i egg-alinode --save # npm start// config/plugin.js exports.alinode = { enable: true, package: 'egg-alinode', }; // config/config.default.js config.alinode = { appid: '<YOUR_APPID>', secret: '<YOUR_SECRET>', };
部署前端項目(這里以 vue 為例)
-
修改前端項目打包配置:注意我們要修改打包后路徑,不然會取不到 js 等資源
- 基于 webpack 打包的項目(以 app 項目為例)
// config/index.js // build assetsPublicPath: '/app/'- uniapp 打包的項目
// manifest.json "h5":{ "router":{ "base":"/app/" } }, 打包
在項目根目錄npm run build,然后把 dist 文件夾里的內(nèi)容傳到服務(wù)器,這里我們把兩個項目分部傳到/root/www/app 和/root/www/admin,記得提前創(chuàng)建 app 和 admin 文件夾
項目實戰(zhàn)
全棧項目-基于 koa 框架 egg 的服務(wù)端接口 求一個 star~
本人水平有限,歡迎大家交流指正。本文為作者原創(chuàng),轉(zhuǎn)載請注明出處。