gpt4 book ai didi

node.js - 错误: Socket Hang Up with Postman API testing

转载 作者:行者123 更新时间:2023-12-02 06:02:06 26 4
gpt4 key购买 nike

我们已经部署了一些 API(很少使用 Node.js/Express.js 开发,其他使用 Python Quart 开发)。我们的所有 API 均使用 Azure 容器化实例进行部署。我们通过 Postman 设置了定期 API 监控。 API 在大约 20% 的情况下会失败,并出现错误:套接字挂起。我们在开发区域或通过浏览器访问 API 时从未遇到过此问题。什么可能导致此套接字挂起问题以及我们如何克服它?

我们的 Node.js API Dockerfile 设置如下:

FROM node:16

WORKDIR /app

COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf .env
RUN mv production.env .env

#ENV PORT=5000
EXPOSE 5000

CMD ["npm", "run", "prod"]

Python Quart API Dockerfile 设置如下:

FROM continuumio/miniconda3

COPY . /api/

WORKDIR /api/src

RUN conda env create -f /api/environment.yml
COPY entrypoint.sh ./
RUN chmod +x ./entrypoint.sh

ENTRYPOINT ["./entrypoint.sh"]

EXPOSE 5000

入口点.sh

#!/bin/bash --login
set +euo pipefail
conda activate python_env_name
set -euo pipefail

exec hypercorn --bind 0.0.0.0:5000 QuartAPI:app

最佳答案

看起来 Postman 中的问题比 API 中的问题更多。假设服务器没有抛出/记录任何错误,则 Postman 可能没有正确处理响应。以下是 Postman 中可能导致此问题的一些原因:

  1. 在请求中:添加 header “Content-length”。它应该自动计算该值(但您可以尝试指定它)。如果您指定了值,请确保其正确。
  2. 在 Postman -> 设置 -> 常规中,确保“超时”值足够高或永远为“0”。
  3. 根据我的经验,Postman 不喜欢 VPN。如果问题发生时您已连接到 VPN,请断开连接并重试。如果这样可以解决问题,您将需要在 VPN 周围创建一条特殊的路由。
  4. Postman -> 设置 -> 常规,尝试禁用“发送 Postman token ”
  5. 最后要尝试的事情:Postman 许多不处理服务器发起的 TLS 重新协商,这在多个版本的 Postman 中会导致连接/套接字错误。该问题似乎影响 Postman 7.1 - 7.5 版本。您可以尝试将 Postman 更新到最新版本,这可能可以解决问题。

关于node.js - 错误: Socket Hang Up with Postman API testing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71013687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com