服務(wù)器部署前端&node項(xiàng)目(包括阿里云服務(wù)器寂嘉、nginx以及mongoDB 的配置)

建議不熟悉 linux 命令的小伙伴同時(shí)打開(kāi)我的另一篇博客linux 常用操作

服務(wù)器購(gòu)買&配置

  1. 打開(kāi)阿里云催训,選擇購(gòu)買云服務(wù)器 ECS霍转,這里可以選擇一鍵購(gòu)買進(jìn)行快速配置,操作系統(tǒng)選擇 CentOS 7.2 64 位现使,其他默認(rèn)或根據(jù)實(shí)際需求來(lái)低匙,若選擇自定義購(gòu)買請(qǐng)自行搜索;
  2. 購(gòu)買成功設(shè)置賬號(hào)密碼后,就可以通過(guò) ftp 工具(我用的是 FileZilla)或者 git 連接我們的服務(wù)器了碳锈,這個(gè)時(shí)候我們也可以打開(kāi)阿里云的控制臺(tái)/云服務(wù)器 ECS 查看購(gòu)買的服務(wù)器;
  3. 打開(kāi)阿里云的控制臺(tái)/云服務(wù)器 ECS/網(wǎng)絡(luò)和安全/安全組顽冶,在安全組列表點(diǎn)擊配置規(guī)則,點(diǎn)擊快速創(chuàng)建規(guī)則殴胧,就可以暴露端口了渗稍。比如暴露 80 端口,選擇 HTTP(80)团滥,授權(quán)對(duì)象填0.0.0.0/0竿屹,其他默認(rèn)就可以了。暴露其他端口你就在自定義端口選擇灸姊,比如暴露 7001 端口拱燃,你就在自定義端口選擇 TCP,輸入7001/7001即可力惯。
  4. 開(kāi)啟node 性能平臺(tái)碗誉,點(diǎn)擊創(chuàng)建新應(yīng)用按照操作提示來(lái)就行召嘶,成功開(kāi)啟后在項(xiàng)目配置(具體配置看下文))就可以監(jiān)控?cái)?shù)據(jù)了。

連接服務(wù)器

  1. git 連接

    # ssh remote_username@remote_ip 然后輸入密碼即可
    
    如果ssh不存在哮缺,執(zhí)行以下命令即可
    # yum install openssh-client 下載客戶端ssh
    
  2. ftp 工具連接(這里以 FileZilla 為例)弄跌,下載 filezilla 后,點(diǎn)擊新建站點(diǎn)尝苇,輸入主機(jī) ip铛只,選擇 sftp 協(xié)議,選擇登錄類型為正常糠溜,輸入賬號(hào)密碼即可

部署 node 環(huán)境

  1. 部署 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版本
    
  2. 其他

    # yum install vim 下載vim
    

nginx 安裝&配置

  1. nginx 安裝

    # yum install epel-release 下載epel-release
    # yun install nginx 下載nginx
    # cd /etc/nginx
    # vim nginx.conf 用vim打開(kāi)nginx.conf
    
  2. 修改 nginx.conf

    • 修改 user 為 root
    • 修改 server 如下淳玩,這里 wx 是指向代理另一個(gè) node 微信公眾號(hào)項(xiàng)目(運(yùn)行在 7002 端口,但微信公眾號(hào)配置 http 只允許 80 端口,所以設(shè)置代理非竿,我們的 elm 接口運(yùn)行在 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 {
        }
    }
    
  3. 啟動(dòng) nginx

    nginx -t 測(cè)試nginx語(yǔ)法是否有誤
    nginx 啟動(dòng)nginx
    nginx -s reload 重啟nginx蜕着,修改nginx.conf后記得重啟
    
  4. 其他命令

    ps -ef | grep nginx 顯示nginx進(jìn)程
    nginx -s stop 停止nginx
    nginx -v 查看nginx版本
    

部署 mongodb

  1. 安裝 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ù)庫(kù)文件夾
    # 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是后臺(tái)啟動(dòng),避免又要再開(kāi)窗口重新連接服務(wù)器再能進(jìn)行其他操作
    # ./mongo 連接mongodb
    
  2. 配置隨 linux 啟動(dòng)
    在/etc/rc.local 添加如下即可:

    # rm /usr/local/mongodb/data/mongod.lock 停止可能在運(yùn)行的mongo
    # /.../bin/mongod -dbpath /usr/local/mongodb/data -logpath /usr/local/mongodb/mongodb.log -logappend -fork -port 27017
    
  3. 設(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")
    
  4. 項(xiàng)目中連接 mongodb(這里以 koa 框架 egg 項(xiàng)目為例红柱,其他 node 請(qǐng)自行查找)

    # 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 項(xiàng)目

部署環(huán)境 阿里云 CentOS 7.2 64 位

  1. 本地項(xiàng)目根目錄(刪除 node_modules,建議依賴在服務(wù)器下載)

    # tar -zcvf ../file_name.tgz . 打包
    # scp ../file_name.tgz remote_username@remote_ip:/root/www/server 上傳到服務(wù)器
    
  2. 服務(wù)器

    # ssh remote_username@remote_ip 連接服務(wù)器
    # cd /root/www
    # mkdir server 這里創(chuàng)建server文件夾放node項(xiàng)目代碼
    # cd server
    # tar -zxvf file_name.tgz . 解壓
    # cnpm install --production 安裝生產(chǎn)環(huán)境依賴
    
    1. koa項(xiàng)目(express項(xiàng)目類似)
    # cnpm i -g pm2 下載pm2
    # pm2 start bin/www 守護(hù)進(jìn)程啟動(dòng)
    # pm2 restart app_name|app_id 重啟
    # pm2 stop app_name|app_id 停止
    # pm2 list 查看進(jìn)程狀態(tài)
    # pm2 stop all 停止所有應(yīng)用
    # pm2 start ./bin/www --watch 監(jiān)聽(tīng)更改自動(dòng)重啟
    
    2. egg項(xiàng)目
    # npm start 運(yùn)行
    # npm stop 停止
    
    
  3. 阿里 node 性能平臺(tái)監(jiān)控

    1.koa 項(xiàng)目(express 項(xiàng)目類似)

    # 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 性能平臺(tái)獲取對(duì)應(yīng)的接入?yún)?shù)

    {
        "appid": "<YOUR APPID>",
        "secret": "<YOUR SECRET>"
        }
    
    # cnpm install @alicloud/agenthub -g 安裝 agenthub
    # agenthub start config.json 啟動(dòng)agenthub
    # agenthub list 查看 agenthub 列表
    # ENABLE_NODE_LOG=YES pm2 start bin/www 使用pm2管理的應(yīng)用
    

    2.egg 項(xiàng)目

    # 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>',
    };
    

部署前端項(xiàng)目(這里以 vue 為例)

  1. 修改前端項(xiàng)目打包配置:注意我們要修改打包后路徑,不然會(huì)取不到 js 等資源

    1. 基于 webpack 打包的項(xiàng)目(以 app 項(xiàng)目為例)
    // config/index.js
    // build
    assetsPublicPath: '/app/'
    
    1. uniapp 打包的項(xiàng)目
    // manifest.json
    "h5":{
     "router":{
         "base":"/app/"
     }
    },
    
  2. 打包
    在項(xiàng)目根目錄npm run build锤悄,然后把 dist 文件夾里的內(nèi)容傳到服務(wù)器悄雅,這里我們把兩個(gè)項(xiàng)目分部傳到/root/www/app 和/root/www/admin,記得提前創(chuàng)建 app 和 admin 文件夾

項(xiàng)目實(shí)戰(zhàn)

全棧項(xiàng)目-基于 koa 框架 egg 的服務(wù)端接口 求一個(gè) star~

本人水平有限铁蹈,歡迎大家交流指正。本文為作者原創(chuàng)众眨,轉(zhuǎn)載請(qǐng)注明出處握牧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市娩梨,隨后出現(xiàn)的幾起案子沿腰,更是在濱河造成了極大的恐慌,老刑警劉巖狈定,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂龙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡纽什,警方通過(guò)查閱死者的電腦和手機(jī)措嵌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芦缰,“玉大人企巢,你說(shuō)我怎么就攤上這事∪美伲” “怎么了浪规?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵或听,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我笋婿,道長(zhǎng)誉裆,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任缸濒,我火速辦了婚禮足丢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绍填。我一直安慰自己霎桅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布讨永。 她就那樣靜靜地躺著滔驶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卿闹。 梳的紋絲不亂的頭發(fā)上揭糕,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音锻霎,去河邊找鬼著角。 笑死,一個(gè)胖子當(dāng)著我的面吹牛旋恼,可吹牛的內(nèi)容都是我干的吏口。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冰更,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼产徊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蜀细,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤舟铜,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后奠衔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谆刨,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年归斤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痊夭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡官册,死狀恐怖生兆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤鸦难,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布根吁,位于F島的核電站,受9級(jí)特大地震影響合蔽,放射性物質(zhì)發(fā)生泄漏击敌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一拴事、第九天 我趴在偏房一處隱蔽的房頂上張望沃斤。 院中可真熱鬧,春花似錦刃宵、人聲如沸衡瓶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哮针。三九已至,卻和暖如春坦袍,著一層夾襖步出監(jiān)牢的瞬間十厢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工捂齐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛮放,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓奠宜,卻偏偏與公主長(zhǎng)得像包颁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子压真,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355