Add clustering via $WEB_CONCURRENCY env var
This commit is contained in:
parent
326d9ae8e1
commit
0b2906979d
|
@ -1 +1 @@
|
|||
web: NODE_ENV=development node -r ./modules/register.js modules/server/start.js
|
||||
web: NODE_ENV=development node -r ./modules/register.js modules/server
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
/*eslint-disable no-console*/
|
||||
import path from 'path'
|
||||
import cors from 'cors'
|
||||
import throng from 'throng'
|
||||
import morgan from 'morgan'
|
||||
import express from 'express'
|
||||
import devErrorHandler from 'errorhandler'
|
||||
import WebpackDevServer from 'webpack-dev-server'
|
||||
import { createRequestHandler } from 'npm-http-server'
|
||||
import { staticAssets, assetsCompiler, createDevCompiler } from './AssetsUtils'
|
||||
import webpackConfig from '../../webpack.config'
|
||||
import { sendHomePage } from './MainController'
|
||||
import { logStats } from './StatsUtils'
|
||||
|
||||
|
@ -23,7 +27,7 @@ export const createRouter = (config = {}) => {
|
|||
|
||||
const errorHandler = (err, req, res, next) => {
|
||||
res.status(500).send('<p>Internal Server Error</p>')
|
||||
console.error(error.stack)
|
||||
console.error(err.stack)
|
||||
next(err)
|
||||
}
|
||||
|
||||
|
@ -56,9 +60,9 @@ export const createDevServer = (config) => {
|
|||
// https://webpack.github.io/docs/node.js-api.html#stats-tojson
|
||||
assets: true,
|
||||
colors: true,
|
||||
version: false,
|
||||
hash: false,
|
||||
timings: false,
|
||||
version: true,
|
||||
hash: true,
|
||||
timings: true,
|
||||
chunks: false
|
||||
},
|
||||
|
||||
|
@ -79,3 +83,47 @@ export const createDevServer = (config) => {
|
|||
|
||||
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 DefaultServerConfig = {
|
||||
id: 1,
|
||||
port,
|
||||
webpackConfig,
|
||||
statsFile,
|
||||
publicDir,
|
||||
registryURL,
|
||||
bowerBundle,
|
||||
redirectTTL,
|
||||
autoIndex,
|
||||
redisURL
|
||||
}
|
||||
|
||||
export const startServer = (serverConfig) => {
|
||||
const config = {
|
||||
...DefaultServerConfig,
|
||||
...serverConfig
|
||||
}
|
||||
|
||||
const server = process.env.NODE_ENV === 'production'
|
||||
? createServer(config)
|
||||
: createDevServer(config)
|
||||
|
||||
server.listen(config.port, () => {
|
||||
console.log('Server #%s listening on port %s, Ctrl+C to stop', config.id, config.port)
|
||||
})
|
||||
}
|
||||
|
||||
if (require.main === module)
|
||||
throng({
|
||||
start: (id) => startServer({ id }),
|
||||
workers: process.env.WEB_CONCURRENCY || 1,
|
||||
lifetime: Infinity
|
||||
})
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
import path from 'path'
|
||||
import { createServer, createDevServer } from './index'
|
||||
|
||||
const port = process.env.PORT || 5000
|
||||
const webpackConfig = require('../../webpack.config')
|
||||
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 serverConfig = {
|
||||
port,
|
||||
webpackConfig,
|
||||
statsFile,
|
||||
publicDir,
|
||||
registryURL,
|
||||
bowerBundle,
|
||||
redirectTTL,
|
||||
autoIndex,
|
||||
redisURL
|
||||
}
|
||||
|
||||
const server = process.env.NODE_ENV === 'production'
|
||||
? createServer(serverConfig)
|
||||
: createDevServer(serverConfig)
|
||||
|
||||
server.listen(port, () => {
|
||||
console.log('Server started on port %s, Ctrl+C to quit', port)
|
||||
})
|
|
@ -41,6 +41,7 @@
|
|||
"redis": "^2.6.0-1",
|
||||
"rimraf": "^2.5.2",
|
||||
"style-loader": "^0.13.1",
|
||||
"throng": "^4.0.0",
|
||||
"webpack": "^1.13.0",
|
||||
"webpack-dev-server": "^1.14.1"
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue