如何设置 http-request 节点不使用环境设置代理设置?

How to set http-request node not to use environment set proxy settings?

我正在使用的 Node-RED 安装在 Ubuntu 容器之上。
(我没有创建这个容器,也不能修改它。)

我想创建一个流,向同一 docker 网络上的另一个容器发出简单的 HTTP get 请求,但我一直收到 403 禁止错误。

[{"id":"332622ed.d87fbe","type":"http request","z":"8431aef4.eba67","name":"","method":"GET","ret":"txt","url":"http://172.16.0.5:8080/path/to/something","tls":"","x":890,"y":700,"wires":[["f49e6445.15d988"]]},{"id":"277f03cb.536f8c","type":"inject","z":"8431aef4.eba67","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":730,"y":700,"wires":[["332622ed.d87fbe"]]},{"id":"f49e6445.15d988","type":"debug","z":"8431aef4.eba67","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1050,"y":700,"wires":[]}]

所以我尝试从 docker 容器本身中执行请求
即通过:

docker exec -it ubuntu_nodered bash
curl –X GET "http://172.16.0.5:8080/path/to/something"

403 禁止错误仍然存​​在。后来,我发现容器有代理设置,所以我尝试:

curl –X GET --noproxy "*" "http://172.16.0.5:8080/path/to/something"

唉,这个命令我得到了正确的响应。

现在我确定问题出在代理上...如何从流中发出 HTTP 请求而不使用它所在环境中的代理设置来处理请求172.16.0.x?

您需要设置NO_PROXY环境变量。可以找到变量的文档 here.

这应该包含 hosts/ip 地址的逗号分隔列表,这些地址不应与代理一起使用。看看这个 question/answer 似乎您无法轻松添加 IP 地址范围,因此您需要添加您不想代理的范围内的所有地址。