guoziyun пре 9 месеци
родитељ
комит
a177e0b5d3
2 измењених фајлова са 22 додато и 4 уклоњено
  1. 10 2
      oms/dist/src/app.js
  2. 12 2
      oms/src/app.ts

+ 10 - 2
oms/dist/src/app.js

@@ -7,7 +7,8 @@ exports.clickhouseService = exports.redisClient = void 0;
 // oms/src/app.ts
 // oms/src/app.ts
 const dotenv_1 = __importDefault(require("dotenv"));
 const dotenv_1 = __importDefault(require("dotenv"));
 dotenv_1.default.config(); // 在读取环境变量之前加载 .env 文件
 dotenv_1.default.config(); // 在读取环境变量之前加载 .env 文件
-const express_1 = __importDefault(require("express")); // 导入 NextFunction
+const express_1 = __importDefault(require("express"));
+const http_1 = __importDefault(require("http")); // 导入 Node.js 的 HTTP 模块
 const redis_1 = require("redis");
 const redis_1 = require("redis");
 const path_1 = __importDefault(require("path"));
 const path_1 = __importDefault(require("path"));
 const apiRoutes_1 = __importDefault(require("./routes/apiRoutes"));
 const apiRoutes_1 = __importDefault(require("./routes/apiRoutes"));
@@ -80,7 +81,14 @@ app.use(express_1.default.static(publicPath));
 app.use((req, res) => {
 app.use((req, res) => {
     res.sendFile(path_1.default.join(angularAppPath, "index.html"));
     res.sendFile(path_1.default.join(angularAppPath, "index.html"));
 });
 });
+// --- 关键修改 ---
+// 使用 http.createServer() 显式创建 HTTP 服务器
+const server = http_1.default.createServer(app);
+// 增加 keepAliveTimeout
+// 默认是 5000 毫秒 (5 秒),增加到 61 秒可以防止请求被过早丢弃。
+server.keepAliveTimeout = 61 * 1000;
+server.headersTimeout = 65 * 1000; // headersTimeout 必须大于 keepAliveTimeout
 // Start the server
 // Start the server
-app.listen(port, () => {
+server.listen(port, () => {
     console.log(`OMS Backend server listening on port ${port}`);
     console.log(`OMS Backend server listening on port ${port}`);
 });
 });

+ 12 - 2
oms/src/app.ts

@@ -2,7 +2,8 @@
 import dotenv from "dotenv";
 import dotenv from "dotenv";
 dotenv.config(); // 在读取环境变量之前加载 .env 文件
 dotenv.config(); // 在读取环境变量之前加载 .env 文件
 
 
-import express, { Request, Response, NextFunction } from "express"; // 导入 NextFunction
+import express, { Request, Response, NextFunction } from "express";
+import http from "http"; // 导入 Node.js 的 HTTP 模块
 import { createClient } from "redis";
 import { createClient } from "redis";
 import path from "path";
 import path from "path";
 import apiRoutes from "./routes/apiRoutes";
 import apiRoutes from "./routes/apiRoutes";
@@ -88,8 +89,17 @@ app.use((req: Request, res: Response) => {
   res.sendFile(path.join(angularAppPath, "index.html"));
   res.sendFile(path.join(angularAppPath, "index.html"));
 });
 });
 
 
+// --- 关键修改 ---
+// 使用 http.createServer() 显式创建 HTTP 服务器
+const server = http.createServer(app);
+
+// 增加 keepAliveTimeout
+// 默认是 5000 毫秒 (5 秒),增加到 61 秒可以防止请求被过早丢弃。
+server.keepAliveTimeout = 61 * 1000;
+server.headersTimeout = 65 * 1000; // headersTimeout 必须大于 keepAliveTimeout
+
 // Start the server
 // Start the server
-app.listen(port, () => {
+server.listen(port, () => {
   console.log(`OMS Backend server listening on port ${port}`);
   console.log(`OMS Backend server listening on port ${port}`);
 });
 });