[server.js] remove greenlock; 补充完整 httpall 时也启动 http; [config.js] 默认在开发环境下 http 模式
This commit is contained in:
@@ -14,14 +14,18 @@
|
||||
|
||||
## 配置
|
||||
|
||||
* 设置 ssl 证书
|
||||
```
|
||||
certbot certonly -d server.fiv.tacever.org
|
||||
```
|
||||
* mongodb 设置数据库账号
|
||||
* mongodb 配置文件已集成到 ```fiv.server/mongod.conf``` 中
|
||||
* <font color=red>还需要哪些信息?例如 mongodb 的管理账号和密码?</font>
|
||||
* bindIp: 127.0.0.1 (生产环境)
|
||||
* bindIpAll: true (开发环境)
|
||||
* 编写 ```/fiv.server/configSec.js```,设置HD钱包的根密钥等等
|
||||
* protocol: https (生产环境)
|
||||
* protocol: http (开发环境)
|
||||
* port: 6842 (不要用 80/443,因为这要留给)
|
||||
* port: 6842 (不要用 80/443,因为这要留给certbot)
|
||||
|
||||
## 运行
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module.exports = {
|
||||
port: 80,
|
||||
protocol: 'httpall',
|
||||
host: 'localhost',
|
||||
sslType: 'file'
|
||||
};
|
||||
protocol: 'http', // by default http for development. Please change to https in configSec.js for production.
|
||||
host: 'server.fiv.tacever.org',
|
||||
// sslType: 'file'
|
||||
}
|
||||
|
||||
@@ -16,29 +16,16 @@ const inject = require('./common/Provider').inject;
|
||||
module.exports = () => inject(function runServer (SysConfig) { // 配置并启动 Web 服务
|
||||
mylog.info('★★★★★★★★ Starting Server ★★★★★★★★');
|
||||
|
||||
const greenlock = SysConfig && SysConfig.sslType==='greenlock' ? require('greenlock-express').create({
|
||||
version: 'draft-11',
|
||||
server: SysConfig.netType==='devnet' // for test: acme-staging-v02
|
||||
? 'https://acme-staging-v02.api.letsencrypt.org/directory'
|
||||
: 'https://acme-v02.api.letsencrypt.org/directory',
|
||||
agreeTos: true,
|
||||
communityMember: false,
|
||||
store: require('greenlock-store-fs'),
|
||||
email: 'ssl@faronear.org',
|
||||
approvedDomains: SysConfig.sslDomainList,
|
||||
configDir: path.resolve(__dirname, 'ssl'),
|
||||
app,
|
||||
}) : null;
|
||||
|
||||
/** * 启动 Web 服务 ***/
|
||||
let webServer;
|
||||
SysConfig.port = parseInt(SysConfig.port) || (SysConfig.protocol === 'http' ? 80 : SysConfig.protocol === 'https' ? 443 : undefined) // 端口默认为 http:80, https:443, httpall: 80|443
|
||||
if (SysConfig.protocol === 'http') {
|
||||
webServer = require('http').createServer(app).listen(SysConfig.port, function (err) {
|
||||
if (err) mylog.info(err);
|
||||
else mylog.info(`Server listening on ${SysConfig.protocol}://${SysConfig.host}:${SysConfig.port} with for ${app.settings.env} environment`);
|
||||
});
|
||||
} else if (SysConfig.protocol === 'https') {
|
||||
webServer = require('https').createServer(SysConfig.sslType === 'greenlock' ? greenlock.httpsOptions : {
|
||||
webServer = require('https').createServer({
|
||||
key: fs.readFileSync(SysConfig.sslKey),
|
||||
cert: fs.readFileSync(SysConfig.sslCert),
|
||||
}, app).listen(SysConfig.port, function (err) {
|
||||
@@ -47,25 +34,23 @@ module.exports = () => inject(function runServer (SysConfig) { // 配置并启
|
||||
});
|
||||
} else if ('httpall' === SysConfig.protocol) {
|
||||
let portHttp = SysConfig.port ? SysConfig.port : 80;
|
||||
// let portHttps = (SysConfig.port && SysConfig.port !== 80) ? SysConfig.port + 443 : 443
|
||||
let portHttps = 443;
|
||||
if (SysConfig.sslType === 'greenlock') {
|
||||
webServer = greenlock.listen(portHttp, portHttps, function (err) {
|
||||
if (err) console.log(err);
|
||||
else console.log(`Server listening on [${SysConfig.protocol}] http=>https://${SysConfig.host}:${portHttp}=>${portHttps} for ${app.settings.env} environment`);
|
||||
});
|
||||
} else {
|
||||
webServer = require('https').createServer({
|
||||
key: fs.readFileSync(SysConfig.sslKey),
|
||||
cert: fs.readFileSync(SysConfig.sslCert),
|
||||
// ca: [ fs.readFileSync(SysConfig.sslCA) ] // only for self-signed certificate: https://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener
|
||||
}, app).listen(portHttps, function (err) {
|
||||
if (err) console.log(err);
|
||||
else console.log(`Server listening on [${SysConfig.protocol}] https://${SysConfig.host}:${portHttps} for ${app.settings.env} environment`);
|
||||
});
|
||||
}
|
||||
let portHttps = (SysConfig.port && SysConfig.port !== 80) ? SysConfig.port + 443 : 443
|
||||
require('http').createServer(server.all('*', function (ask, reply) {
|
||||
reply.redirect(`https://${SysConfig.host}:${portHttps}`)
|
||||
})).listen(portHttp, function(err) {
|
||||
if (err) console.log(err)
|
||||
else console.log(`Server listening on [${wo.Config.protocol}] http://${SysConfig.host}:${portHttp} for ${app.settings.env} environment`)
|
||||
})
|
||||
webServer = require('https').createServer({
|
||||
key: fs.readFileSync(SysConfig.sslKey),
|
||||
cert: fs.readFileSync(SysConfig.sslCert),
|
||||
// ca: [ fs.readFileSync(SysConfig.sslCA) ] // only for self-signed certificate: https://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener
|
||||
}, app).listen(portHttps, function (err) {
|
||||
if (err) console.log(err);
|
||||
else console.log(`Server listening on [${SysConfig.protocol}] https://${SysConfig.host}:${portHttps} for ${app.settings.env} environment`);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// const socket = Socket(webServer);
|
||||
return webServer;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user