我正在逐步完成一些 Envoy 教程(如果您不知道那是什么,可能并不重要)。我在我的 Ubuntu VM(Windows 11 主机)上执行此操作,并且位于公司防火墙后面。
我们通过运行“func-e”命令行来运行特定版本的 Envoy,这是一个动态安装和运行特定版本 Envoy 的工具。该输出显示它正在侦听端口 10000。
在另一个 shell 中,我可以运行“ curl http://localhost:10000
”,它会返回 Envoy 代理的预期输出。
在同一个 shell 中,我尝试使用一个名为“hey”的 golang 工具,这是一个简单的负载测试工具。你只需向它提供你想要访问的 URL,它就会返回结果。在本例中,我使用简单的配置来运行它,如下所示:
hey -n 1 -c 1 http://localhost:10000
这表示用一名工作人员发送一个请求。其作用是在预配置的 20 秒超时后超时。
如果我首先断开笔记本电脑与 VPN 的连接并运行此测试,它会正常工作。
我认为这个问题与 shell 中的代理设置有关,特别是“no_proxy”变量。在那个逗号分隔的列表中,我有“localhost”和“127.0.0.1”(以防万一,“NO_PROXY”变量具有相同的值)。
答案1
如果重要的话,我设法解决了这个问题。由于某种原因,虚拟机有一个完全空的 /etc/hosts 文件。一旦我添加了本地主机的条目,“嘿”就可以正常工作了。我觉得奇怪的是“curl”对此没有任何麻烦。