Fix: таймаут 10с на все запросы — не висим, не даём nginx 503. Версия 0.1.25
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ipwhitelist",
|
"name": "ipwhitelist",
|
||||||
"version": "0.1.24",
|
"version": "0.1.25",
|
||||||
"description": "IP WhiteList microservice for cloud provider",
|
"description": "IP WhiteList microservice for cloud provider",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -57,6 +57,17 @@ app.use(cookieParser());
|
|||||||
async function start() {
|
async function start() {
|
||||||
const auth = await initAuth();
|
const auth = await initAuth();
|
||||||
|
|
||||||
|
// ── Стоп-кран: если запрос висит > 10 сек — обрываем с ошибкой ───────
|
||||||
|
app.use((req, res, next) => {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
if (!res.headersSent) {
|
||||||
|
res.status(503).type('html').send('<h2>Сервис временно недоступен</h2><p>Превышено время ожидания</p>');
|
||||||
|
}
|
||||||
|
}, 10000);
|
||||||
|
res.on('finish', () => clearTimeout(timer));
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
|
||||||
// ── Сессии ────────────────────────────────────────────────────────────────
|
// ── Сессии ────────────────────────────────────────────────────────────────
|
||||||
const { pool } = require('./src/db');
|
const { pool } = require('./src/db');
|
||||||
app.use(createSessionMiddleware(pool));
|
app.use(createSessionMiddleware(pool));
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
// ═══════════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
version: '0.1.24',
|
version: '0.1.25',
|
||||||
|
|
||||||
// ── Среда ─────────────────────────────────────────────────────────────────
|
// ── Среда ─────────────────────────────────────────────────────────────────
|
||||||
// APP_ENV=test → тестовый стенд (жёлтый баннер в UI, можно включать тестовый API)
|
// APP_ENV=test → тестовый стенд (жёлтый баннер в UI, можно включать тестовый API)
|
||||||
|
|||||||
Reference in New Issue
Block a user