chore(throttling): throttle all requests, not just API requests. Since

we're 120req/min, this shouldn't pose an issue for normal usage. #2645
This commit is contained in:
Tyler Renelle 2014-01-31 10:46:40 -07:00
parent 92563915ef
commit 1faec250d8

View file

@ -5,7 +5,10 @@ var nconf = require('nconf');
var utils = require('./utils'); var utils = require('./utils');
utils.setupConfig(); utils.setupConfig();
if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NODE_ENV') == 'production')) { var isProd = nconf.get('NODE_ENV') === 'production';
var isDev = nconf.get('NODE_ENV') === 'development';
if (cluster.isMaster && (isDev || isProd)) {
// Fork workers. // Fork workers.
_.times(require('os').cpus().length, function(){ _.times(require('os').cpus().length, function(){
cluster.fork(); cluster.fork();
@ -13,8 +16,7 @@ if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NO
cluster.on('exit', function(worker, code, signal) { cluster.on('exit', function(worker, code, signal) {
var w = cluster.fork(); // replace the dead worker var w = cluster.fork(); // replace the dead worker
if (nconf.get('NODE_ENV') === 'development') console.error('[%s] [master:%s] worker:%s disconnect! new worker:%s fork', new Date(), process.pid, worker.process.pid, w.process.pid);
console.error('[%s] [master:%s] worker:%s disconnect! new worker:%s fork', new Date(), process.pid, worker.process.pid, w.process.pid);
}); });
} else { } else {
@ -85,6 +87,7 @@ if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NO
)); ));
// ------------ Server Configuration ------------ // ------------ Server Configuration ------------
domainMiddleware({ domainMiddleware({
server: server, server: server,
killTimeout: 3000 killTimeout: 3000
@ -92,8 +95,9 @@ if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NO
app.set("port", nconf.get('PORT')); app.set("port", nconf.get('PORT'));
if (nconf.get('NODE_ENV') !== 'production') if (isProd)
app.use(express.logger("dev")); middleware.apiThrottle(app);
if (!isProd) app.use(express.logger("dev"));
app.use(express.compress()); app.use(express.compress());
app.set("views", __dirname + "/../views"); app.set("views", __dirname + "/../views");
app.set("view engine", "jade"); app.set("view engine", "jade");
@ -115,7 +119,7 @@ if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NO
app.use(app.router); app.use(app.router);
var maxAge = (nconf.get('NODE_ENV') === 'production') ? 31536000000 : 0; var maxAge = isProd ? 31536000000 : 0;
app.use(express['static'](path.join(__dirname, "/../build"), { maxAge: maxAge })); app.use(express['static'](path.join(__dirname, "/../build"), { maxAge: maxAge }));
app.use(express['static'](path.join(__dirname, "/../public"))); app.use(express['static'](path.join(__dirname, "/../public")));
@ -125,7 +129,6 @@ if (cluster.isMaster && (nconf.get('NODE_ENV') == 'development' || nconf.get('NO
//} //}
// Custom Directives // Custom Directives
middleware.apiThrottle(app);
app.use(require('./routes/pages').middleware); app.use(require('./routes/pages').middleware);
app.use(require('./routes/auth').middleware); app.use(require('./routes/auth').middleware);
var v2 = express(); var v2 = express();