compoundjs同时支持ssl和普通http
在某些情况下,我需要在我的站点上使用SSL 我遵循了自述文件中的示例compoundjs同时支持ssl和普通http,ssl,express,compoundjs,Ssl,Express,Compoundjs,在某些情况下,我需要在我的站点上使用SSL 我遵循了自述文件中的示例 require('compound').createServer({ key: fs.readFileSync('/tmp/tls.key').toString(), cert: fs.readFileSync('/tmp/tls.cert').toString() }); 我的server.js是 #!/usr/bin/env node var fs = require('fs'); /** * Serv
require('compound').createServer({
key: fs.readFileSync('/tmp/tls.key').toString(),
cert: fs.readFileSync('/tmp/tls.cert').toString()
});
我的server.js是
#!/usr/bin/env node
var fs = require('fs');
/**
* Server module exports method returning new instance of app.
*
* @param {Object} params - compound/express webserver initialization params.
* @returns CompoundJS powered express webserver
*/
var app = module.exports = function getServerInstance(params) {
params = params || {};
// specify current dir as default root of server
params.root = params.root || __dirname;
params["key"] = fs.readFileSync('/tmp/tls.key').toString();
params["cert"] = fs.readFileSync('/tmp/tls.cert').toString();
return require('compound').createServer(params);
};
if (!module.parent) {
var port = process.env.PORT || 3000;
var host = process.env.HOST || '0.0.0.0';
var server = app();
server.listen(port, host, function () {
console.log(
'Compound server listening on %s:%d within %s environment',
host, port, server.set('env')
);
});
}
现在的问题是我不能得到http,只有https。
如果我只是把我的证书和密钥放在config文件夹中
**var app = module.exports = function getServerInstance(params) {
params = params || {};
// specify current dir as default root of server
params.root = params.root || __dirname;
return require('compound').createServer(params);
};**
然后我得到了一些错误
config/tls.cert:1
tion (exports, require, module, __filename, __dirname) { -----BEGIN CERTIFICAT
^^^^^^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
要让compoundjs同时支持https和http路由,最快捷、最简单的方法是什么?我是否需要像使用Direct express时一样拥有两台服务器?是-需要像使用express一样拥有两台服务器。所以
var app = module.exports = function getServerInstance(params) {
params = params || {};
// specify current dir as default root of server
params.root = params.root || __dirname;
return require('compound').createServer(params);
};
var port = process.env.PORT || 80;
var host = process.env.HOST || '0.0.0.0';
var port_https = 443;
var server = app();
server.listen(port, host, function () {
server.set("confvar", process.env.SERVER_NAME);
console.log(
'Compound server listening on %s:%d within %s environment',
host, port, server.set('env')
);
});
if(fs.existsSync(PATH TO KEY GOES HERE)){
var apphttps = module.exports = function getServerInstance(params) {
params = params || {};
// specify current dir as default root of server
params.root = params.root || __dirname;
params.key = fs.readFileSync(PATH TO KEY GOES HERE).toString();
params.cert = fs.readFileSync(PATH TO CERT GOES HERE).toString();
return require('compound').createServer(params);
};
var serverhttps = apphttps();
serverhttps.listen(port_https, host, function () {
serverhttps.set("confvar", process.env.SERVER_NAME);
console.log(
'Compound https server listening on %s:%d within %s environment',
host, port_https, serverhttps.set('env')
);
});
}