Update server config

This commit is contained in:
Michael Jackson 2016-06-22 10:12:02 -07:00
parent d2f5b9f7cb
commit 7734f13091
2 changed files with 20 additions and 31 deletions

View 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

View File

@ -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,