簡體   English   中英

HTTP 在 Docker 容器中運行時,Nodejs 中的解析錯誤

[英]HTTP Parse Error in Nodejs when running in a Docker Container

我有一個 Nestjs 應用程序,我嘗試在 docker 容器中運行。 直到最近我收到錯誤Parse Error: Missing expected CR after header value ,這一切都運行良好。 我正在嘗試向物聯網設備的網絡服務器發出 http GET 請求。 此外,僅當我在 docker 容器內運行服務器應用程序時才會發生此錯誤。 當我在 windows 或 macos 機器上本地運行它時,一切正常。

我嘗試在 docker 中使用不同版本的 nodejs。 14、16和18。這個錯誤總是出現,與我使用的版本無關。 我不知道如何調試此錯誤,因為它僅在我在 docker 容器內提供應用程序時發生。

這是我的 dockerfile:

FROM node:slim
RUN mkdir -p /app
WORKDIR /app
COPY src .
COPY package.json .
RUN apt update && apt install python3 make g++ -y
RUN npm install --force
EXPOSE 3000
CMD ["npm", "run", "start:dev"]

根據這個問題,這是最近在 Node v14.20.0、v16.16.0 和 v18.5.0 中實現的。 顯然它修復了早期版本的 HTTP 解析器中的一個漏洞。

如果無法修復客戶端,問題下方的評論建議了各種解決方法,其中最簡單的方法似乎是在創建 HTTP 服務器時將insecureHTTPParser標志設置為true

或者,恢復到上述每個 Node.js 版本的舊次要版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM