[server.js] remove greenlock; 补充完整 httpall 时也启动 http; [config.js] 默认在开发环境下 http 模式

This commit is contained in:
Luk Lu
2019-09-24 11:04:41 +08:00
parent 2d262ed94c
commit 01c0633368
3 changed files with 28 additions and 39 deletions

View File

@@ -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)
## 运行

View File

@@ -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'
}

View 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,14 +34,13 @@ 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 {
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),
@@ -64,7 +50,6 @@ module.exports = () => inject(function runServer (SysConfig) { // 配置并启
else console.log(`Server listening on [${SysConfig.protocol}] https://${SysConfig.host}:${portHttps} for ${app.settings.env} environment`);
});
}
}
// const socket = Socket(webServer);
return webServer;