node項目發布+域名及其二級域名配置+nginx反向代理+pm2


學習node的時候也寫了一些demo。但是只是限於本地測試,從來沒有發布。今天嘗試發布項目。
需要准備的東西

  1. node 項目:為了突出重點,說明主要問題。我只是拿express 寫了很簡單的demo。
  2. 服務器:阿里雲或者其他的服務器
  3. lnmp 點擊查看簡介
  4. pm2 pm2 是一個帶有負載均衡功能的Node應用的進程管理器.

發布步驟

1. 項目准備

共計兩個文件

  • index.js
  • package.json
/**
 * index.js
 * 啟動: node index.js
 * app 跨域訪問測試
 * @type {[type]}
 */
var express = require('express');
//Post方式請求參數放在請求體里面,需引用body-parser解析body  
var bodyParser = require("body-parser");
var app = express();

// 引用  
app.use(bodyParser.urlencoded({
    extended: false
}));

//設置跨域訪問  
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By", ' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

//json數據  
var data = {
    "name": "Test",
    "age": "19"
};

app.get('/', function(req, res) {
    console.log('get..........');
    console.log(req.query);
    if (req.query && req.query.callback) {
        var str = req.query.callback + "(" + JSON.stringify(data) + ")"; //jsonp    
        console.log('jsonp: ' + str);
        res.end(str);
    } else {
        console.log('json: ' + JSON.stringify(data));
        res.end(JSON.stringify(data));
    }
});

app.post('/', function(req, res) {
    console.log('post............');
    console.log(req.body);
    console.log('json: ' + JSON.stringify(data));
    res.end(JSON.stringify(data));
});

app.listen(8085, function() {
    console.log('Listening on port 8085...');
});

2. 服務器安裝 lnmp

登錄服務器,在根目錄下可以安裝。

  • 打開lnmp-install
  • 參考 下載並安裝LNMP一鍵安裝包: 復制
    wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp 運行。估計20 分鍾。

3. 上傳項目

我們采用手動上傳(當然你可以使用git).
我用的是Mac,使用的工具是Cyberduck。我們上傳的位置是/home/wwwroot/default/LHAAPP

QQ20180130-133432.png

這是我配置好的文件,此時目錄應該只用index.js 和 package.json(不用理會index.html)

我們要安裝package,json里面的包文件。必須在服務器安裝node 我使用的centos系統

yum -y install nodejs

此時可以 npm i,項目配置好了。

3. 配置域名

我們發布的項目肯定是需要別人訪問,就需要域名。現在我們來配置域名。
解析域名,找到要解析的域名
jiexi.png

進入之后點擊 添加解析
IP.png

4. 二級域名配置

我以下的域名,都使用example.com 代替
www.example.com 已經被占用了。我們需要一個二級域名,二級域名是app.example.com

在服務器下運行lnmp vhost add
lnmp.png

根據提示填入信息
Please enter domain(example: www.lnmp.org): app.example.com
Enter more domain name(example: lnmp.org *.lnmp.org): enter
Default directory: /home/wwwroot/LHAAPP/(你自己的目錄文件)
Allow Rewrite rule? (y/n) n
Allow access log? (y/n) y
Enter access log filename(Default:test.ibs-bj.com.log): enter
Create database and MySQL user with same name (y/n) n
Add SSL Certificate (y/n) n

要按兩次enter
已經配置好了。我們測試一下,在LHAAPP 下配置一個index.html 測試一下。

5 反向代理

如果不明白反向代理請自行百度。
用vim 打開usr/local/nginx/conf/nginx.conf
輸入

pstream  app.example.com {
    # Nodejs app upstream
    server 127.0.0.1:8085;
    keepalive 64;
}
server {
        listen       80;
        server_name  app.example.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

保存,重新啟動nginx

停止 nginx -s quit
啟動 nginx -c /usr/local/nginx/conf/nginx.conf

5 pm2 發布

命令行進入 我們的項目目錄
運行

pm2 start index.js

QQ2018013pm2.png

我們看到

fl.png

參考文章

  1. [Nginx的啟動(start),停止(stop)命令
    ](http://blog.csdn.net/u010739551/article/details/51654859)
  2. Nginx反向代理以及負載均衡配置
  3. 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 應用
  4. 使用Nginx實現反向代理
  5. vim保存退出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM