Node实战:10 部署和开发

10.1 部署

    部署应用到生成服务器中,则需要添加额外的可靠层,当应用崩溃时能够提供帮助。

    端口号:80

    基本:使用无限循环运行脚本。使用tee命令将标注输出写入到日志文件中。

#!/bin/bash
while true
do
   node xxx.js | tee -a /var/server/logs/important.log
done
    级别:Ninjia

10.2 多处理器部署:使用代理

    使用http-proxy来构建代理服务器。

10.3 虚拟主机

   在同一个服务器上运行多个网站。通过向HTTP请求中添加“Host:”头来实现虚拟主机,这是HTTP/1.1的主要特性之一。

   内置支持:express直接内置了运行多虚拟主机的功能。

Node实战:10 部署和开发_第1张图片

var express = require('express'),
    evh = require('express-vhost'),
    morgan = require('morgan');

var one = express();
one.get("/", function(req, res){
    res.send("This is app one!")
});


// App two
var two = express();
two.get("/", function(req, res){
    res.send("This is app two!")
});

// App three
var three = express();
three.get("/", function(req, res){
    res.send("This is app three!")
});


// controlling app
var master_app = express();

master_app.use(morgan('dev'));
master_app.use(evh.vhost('app1', one))
master_app.use(evh.vhost('app2', two));
master_app.use(evh.vhost('app3', three));

master_app.listen(8080);
console.log('Listening on 8080 for three different hosts');

    代理服务器支持:使用http-proxy模块,基于站点主机名的

10.4 使用HTTPS/SSL保障项目安全

    为应用添加SSL/HTTPS支持,首先需要生成一些测试证书,并为应用程序添加加密传输的支持。

    生成测试证书: 包括两个文件privkey.pem(私有密钥)和newcert.pem(对应的证书)

openssl genrsa -out privkey.pem 1024
openssl req -new -key privkey.pem -out certreq.csr
openssl x509 -req -days 3650 -in certreq.csr -signkey privkey.pem -out newcert.pem
      内置支持
var express = require('express'),
    https = require('https'),
    fs = require('fs');

// 1. Load certificates and create options
var privateKey = fs.readFileSync('privkey.pem').toString();
var certificate = fs.readFileSync('newcert.pem').toString();

var options = {
    key : privateKey,
    cert : certificate
}

// 2. Create express app and set up routing, etc.
var app = express();
app.get("*", function (req, res) {
      res.end("Thanks for calling securely!\n");
});


// 3. start https server with options and express app.
https.createServer(options, app).listen(443, function(){
    console.log("Express server listening on port " + 443);
    代理服务器支持

10.5 多平台开发

 

你可能感兴趣的:(后端)