服務器部署前端&node項目(包括阿里雲服務器、nginx以及mongoDB 的配置)

建議不熟悉 linux 命令的小夥伴同時打開個人另外一篇博客 linux 經常使用操做

服務器購買&配置

  1. 打開阿里雲,選擇購買雲服務器 ECS,這裏能夠選擇一鍵購買進行快速配置,操做系統選擇 CentOS 7.2 64 位,其餘默認或根據實際需求來,若選擇自定義購買請自行搜索;
  2. 購買成功設置帳號密碼後,就能夠經過 ftp 工具(我用的是 FileZilla)或者 git 鏈接咱們的服務器了,這個時候咱們也能夠打開阿里雲的控制檯/雲服務器 ECS 查看購買的服務器;
  3. 打開阿里雲的控制檯/雲服務器 ECS/網絡和安全/安全組,在安全組列表點擊配置規則,點擊快速建立規則,就能夠暴露端口了。好比暴露 80 端口,選擇 HTTP(80),受權對象填0.0.0.0/0,其餘默認就能夠了。暴露其餘端口你就在自定義端口選擇,好比暴露 7001 端口,你就在自定義端口選擇 TCP,輸入7001/7001便可。
  4. 開啓node 性能平臺,點擊建立新應用按照操做提示來就行,成功開啓後在項目配置(具體配置看下文))就能夠監控數據了。

鏈接服務器

  1. git 鏈接html

    # ssh remote_username@remote_ip 而後輸入密碼便可
    
    若是ssh不存在,執行如下命令便可
    # yum install openssh-client 下載客戶端ssh
  2. ftp 工具鏈接(這裏以 FileZilla 爲例),下載 filezilla 後,點擊新建站點,輸入主機 ip,選擇 sftp 協議,選擇登陸類型爲正常,輸入帳號密碼便可

部署 node 環境

  1. 部署 node 環境前端

    # ssh remote_username@remote_ip 鏈接服務器
    # 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 建立軟鏈接
    # ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm 建立軟鏈接
    # node -v 查看node版本
    # npm -v 查看npm版本
  2. 其餘vue

    # yum install vim 下載vim

nginx 安裝&配置

  1. nginx 安裝node

    # yum install epel-release 下載epel-release
    # yun install nginx 下載nginx
    # cd /etc/nginx
    # vim nginx.conf 用vim打開nginx.conf
  2. 修改 nginx.conflinux

    • 修改 user 爲 root
    • 修改 server 以下,這裏 admin 是指向管理後臺項目,app 是指向移動端項目,wx 是指向代理另外一個 node 微信公衆號項目(運行在 7002 端口,但微信公衆號配置 http 只容許 80 端口,因此設置代理,咱們的 elm 接口運行在 7001 不用代理)
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /root/www/;
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        location /admin/ {
        # 爲空便可,前端打包文件放在/root/www/admin裏面就可訪問到,注意默認是index.html
        }
    
        location /app/ {
    
        }
    
        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. 啓動 nginxnginx

    nginx -t 測試nginx語法是否有誤
    nginx 啓動nginx
    nginx -s reload 重啓nginx,修改nginx.conf後記得重啓
  4. 其餘命令git

    ps -ef | grep nginx 顯示nginx進程
    nginx -s stop 中止nginx
    nginx -v 查看nginx版本

部署 mongodb

  1. 安裝 mongodbgithub

    # ssh remote_username@remote_ip 鏈接服務器
    # 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 建立數據庫文件夾
    # touch mongodb.log 建立日誌文件
    # cd /usr/local/mongodb/bin
    # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork 注意fork是後臺啓動,避免又要再開窗口從新鏈接服務器再能進行其餘操做
    # ./mongo 鏈接mongodb
  2. 配置隨 linux 啓動
    在/etc/rc.local 添加以下便可:mongodb

    # 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
  3. 設置權限數據庫

    # 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. 項目中鏈接 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: {
            // 若是設置了密碼
            // auth: { "authSource": "admin" },
            // user: "root",
            // pass: "123456",
        }
    }

部署 node 項目

部署環境 阿里雲 CentOS 7.2 64 位
  1. 本地項目根目錄(刪除 node_modules,建議依賴在服務器下載)

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

    # ssh remote_username@remote_ip 鏈接服務器
    # cd /root/www
    # mkdir server 這裏建立server文件夾放node項目代碼
    # cd server
    # tar -zxvf file_name.tgz . 解壓
    # cnpm install --production 安裝生產環境依賴

# cnpm i -g pm2 下載pm2
# pm2 start bin/www 守護進程啓動
# pm2 restart app_name|app_id 重啓
# pm2 stop app_name|app_id 中止
# pm2 list 查看進程狀態
# pm2 stop all 中止全部應用
# pm2 start ./bin/www --watch 監聽更改自動重啓

  1. egg項目

# npm start 運行
# npm stop 中止

3. 阿里 node 性能平臺監控

1. koa 項目(express 項目相似)

# wget -O- https://raw.githubusercontent... | bash 安裝版本管理工具 tnvm
# source ~/.bashrc
# tnvm ls-remote alinode 查看須要的版本
# tnvm install alinode-v3.11.4 安裝須要的版本
# tnvm use alinode-v3.11. 使用須要的版本

新建 config.json 文件以下,從[node 性能平臺](https://node.console.aliyun.com/#!/owned)獲取對應的接入參數

{

"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管理的應用

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 爲例)

在項目根目錄`npm run build`,而後把 dist 文件夾裏的內容傳到服務器,這裏咱們把兩個項目分部傳到/root/www/app 和/root/www/admin,記得提早建立 app 和 admin 文件夾

## 項目實戰

[全棧項目-基於 koa 框架 egg 的服務端接口](https://github.com/majun00/egg-api) 求一個 star~

> 本人水平有限,歡迎你們交流指正。本文爲做者原創,轉載請註明出處。
相關文章
相關標籤/搜索