Update server config
This commit is contained in:
parent
d2f5b9f7cb
commit
7734f13091
14
modules/server/ServerConfig.js
Normal file
14
modules/server/ServerConfig.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import path from 'path'
|
||||||
|
|
||||||
|
export const id = 1
|
||||||
|
export const port = parseInt(process.env.PORT, 10) || 5000
|
||||||
|
export const timeout = parseInt(process.env.TIMEOUT, 10) || 20000
|
||||||
|
export const statsFile = path.resolve(__dirname, '../../stats.json')
|
||||||
|
export const publicDir = path.resolve(__dirname, '../../public')
|
||||||
|
export const webpackConfig = require('../../webpack.config')
|
||||||
|
|
||||||
|
export const registryURL = process.env.REGISTRY_URL || 'https://registry.npmjs.org'
|
||||||
|
export const bowerBundle = process.env.BOWER_BUNDLE || '/bower.zip'
|
||||||
|
export const redirectTTL = process.env.REDIRECT_TTL || 500
|
||||||
|
export const autoIndex = !process.env.DISABLE_INDEX
|
||||||
|
export const redisURL = process.env.REDIS_URL
|
@ -1,6 +1,5 @@
|
|||||||
/*eslint-disable no-console*/
|
/*eslint-disable no-console*/
|
||||||
import http from 'http'
|
import http from 'http'
|
||||||
import path from 'path'
|
|
||||||
import cors from 'cors'
|
import cors from 'cors'
|
||||||
import throng from 'throng'
|
import throng from 'throng'
|
||||||
import morgan from 'morgan'
|
import morgan from 'morgan'
|
||||||
@ -8,8 +7,8 @@ import express from 'express'
|
|||||||
import devErrorHandler from 'errorhandler'
|
import devErrorHandler from 'errorhandler'
|
||||||
import WebpackDevServer from 'webpack-dev-server'
|
import WebpackDevServer from 'webpack-dev-server'
|
||||||
import { createRequestHandler } from 'npm-http-server'
|
import { createRequestHandler } from 'npm-http-server'
|
||||||
|
import * as DefaultServerConfig from './ServerConfig'
|
||||||
import { staticAssets, devAssets, createDevCompiler } from './AssetsUtils'
|
import { staticAssets, devAssets, createDevCompiler } from './AssetsUtils'
|
||||||
import webpackConfig from '../../webpack.config'
|
|
||||||
import { sendHomePage } from './MainController'
|
import { sendHomePage } from './MainController'
|
||||||
import { logStats } from './StatsUtils'
|
import { logStats } from './StatsUtils'
|
||||||
|
|
||||||
@ -36,6 +35,7 @@ export const createServer = (config) => {
|
|||||||
const app = express()
|
const app = express()
|
||||||
|
|
||||||
app.disable('x-powered-by')
|
app.disable('x-powered-by')
|
||||||
|
|
||||||
app.use(errorHandler)
|
app.use(errorHandler)
|
||||||
app.use(cors())
|
app.use(cors())
|
||||||
app.use(express.static(config.publicDir, { maxAge: 60000 }))
|
app.use(express.static(config.publicDir, { maxAge: 60000 }))
|
||||||
@ -49,8 +49,9 @@ export const createServer = (config) => {
|
|||||||
// https://devcenter.heroku.com/articles/request-timeout
|
// https://devcenter.heroku.com/articles/request-timeout
|
||||||
if (config.timeout) {
|
if (config.timeout) {
|
||||||
server.setTimeout(config.timeout, (socket) => {
|
server.setTimeout(config.timeout, (socket) => {
|
||||||
const message = `Server timeout of ${config.timeout}ms exceeded`
|
const message = `Timeout of ${config.timeout}ms exceeded`
|
||||||
const httpMessage = [
|
|
||||||
|
socket.end([
|
||||||
`HTTP/1.1 503 Service Unavailable`,
|
`HTTP/1.1 503 Service Unavailable`,
|
||||||
`Date: ${(new Date).toGMTString()}`,
|
`Date: ${(new Date).toGMTString()}`,
|
||||||
`Content-Type: text/plain`,
|
`Content-Type: text/plain`,
|
||||||
@ -58,9 +59,7 @@ export const createServer = (config) => {
|
|||||||
`Connection: close`,
|
`Connection: close`,
|
||||||
``,
|
``,
|
||||||
message
|
message
|
||||||
].join(`\r\n`)
|
].join(`\r\n`))
|
||||||
|
|
||||||
socket.end(httpMessage)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,30 +106,6 @@ export const createDevServer = (config) => {
|
|||||||
return server
|
return server
|
||||||
}
|
}
|
||||||
|
|
||||||
const port = process.env.PORT || 5000
|
|
||||||
const statsFile = path.resolve(__dirname, '../../stats.json')
|
|
||||||
const publicDir = path.resolve(__dirname, '../../public')
|
|
||||||
const registryURL = process.env.REGISTRY_URL || 'https://registry.npmjs.org'
|
|
||||||
const bowerBundle = process.env.BOWER_BUNDLE || '/bower.zip'
|
|
||||||
const redirectTTL = process.env.REDIRECT_TTL || 500
|
|
||||||
const autoIndex = !process.env.DISABLE_INDEX
|
|
||||||
const redisURL = process.env.REDIS_URL
|
|
||||||
const timeout = 20000
|
|
||||||
|
|
||||||
const DefaultServerConfig = {
|
|
||||||
id: 1,
|
|
||||||
port,
|
|
||||||
webpackConfig,
|
|
||||||
statsFile,
|
|
||||||
publicDir,
|
|
||||||
registryURL,
|
|
||||||
bowerBundle,
|
|
||||||
redirectTTL,
|
|
||||||
autoIndex,
|
|
||||||
redisURL,
|
|
||||||
timeout
|
|
||||||
}
|
|
||||||
|
|
||||||
export const startServer = (serverConfig) => {
|
export const startServer = (serverConfig) => {
|
||||||
const config = {
|
const config = {
|
||||||
...DefaultServerConfig,
|
...DefaultServerConfig,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user