Dockerised 本地 Squid 代理对使用 Axios 执行的一些请求给出 5xx 错误,但对其他请求则正常

Dockerised 本地 Squid 代理对使用 Axios 执行的一些请求给出 5xx 错误,但对其他请求则正常

我正在尝试设置一个不缓存任何内容的本地 Squid 代理。我正在使用基于此图像的 Dockerised squid: https://hub.docker.com/r/ubuntu/squid

我像这样运行图像:

docker run -d --name squid-container -v /host/squid.conf:/etc/squid/squid.conf -e TZ=UTC -p 3128:3128 ubuntu/squid:4.13-21.10_edge

我现在正在通过带有 Axios 的 Node 应用程序对其进行测试,如下所示:

  const res = await axios.get('https://www.google.com', {
    proxy: {
      host: 'localhost',
      port: 3128
    }
  });
  console.log(res.data);

它不起作用。对于 Google 示例,它以 HTTP 502 响应,在 Squid 日志中我可以看到:

1646472971.202    183 172.17.0.1 TCP_MISS/502 3904 GET https://www.google.com/ - HIER_DIRECT/216.58.209.196 text/html

但对于某些请求,它确实有效。例如,https://ipfs.io/ipfs/QmTWMcWKgv2a5GjH6GoUjJXChZ55HAE3tVEXvPzpdbMnFU/102工作正常。

我的 Squid 配置(其中的一些内容是从研究这个问题中得到的,但它们都无济于事。缓存被故意关闭了)

cache deny all
dns_v4_first on
forwarded_for off
via off
http_access allow all
acl all src all

我从 Axios 收到错误 HTML 页面是:

The following error was encountered while trying to retrieve the URL: https://www.google.com/

Read Error

The system returned: [No Error]

An error condition occurred while reading data from the network. Please retry your request.

Your cache administrator is webmaster.

不使用代理,所有 axios 请求都可以正常工作。有人知道为什么有些请求可以工作,而有些则不行吗?

答案1

这似乎是 Axios 问题,而不是 Squid 配置问题。curl --proxy ...一切运行正常。找到了这张票:

https://github.com/axios/axios/issues/658

由于我并不依赖 Axios,因此我将使用其他库。希望这能对某些人有所帮助,因为我在这上面花了太多时间。

相关内容