我正在运行一个网站,并且我有一些我想调用的 fastcgi 应用程序 - 但是,这些应用程序不能直接供公众访问 - 它们通过 RESTFUL 服务间接访问它们,然后使用 Curl(或其他一些机制) 从 fgci 应用程序中获取数据。
我的问题是带宽问题。假设我正在使用 Curl 或 PHP 的 readfile(),它涉及指定 URL - 这类似于http://localhost/fastcgi-bin/test.fgci
那么“网络”是否足够聪明,可以知道地址驻留在本地,因此它不需要去“外部”,或者请求仍会发送到外部 DNS,它将地址解析为我的机器 IP 地址?
基本上,我想知道使用这种架构是否会增加我的带宽消耗。
您发送到同一台机器的任何数据包都应该通过您的环回接口发出(然后返回)——它们不会通过网络发出。您不会为他们付费。
您可以通过查看路由表来验证这一点。你没有提到你正在使用什么平台,所以我不能给出一个具体的例子,但是从我的笔记本电脑:
查看以下
interface:
行:到机器本地地址(192.168.1.63 和 127.0.01)的流量通过lo0
环回接口发送。去往其他地方的流量将通过接口通过网络出去en1
。现在,对于名称解析,您是对的,如果您为您的机器使用 DNS 名称,DNS 查询和响应很可能会超出本地框。但是,应用程序流量不会:它会遵循路由表中的规则并使用环回接口,如上所述。
根据您的操作系统和配置(DNS 缓存是否打开?您使用的 DNS 名称是否列在本地主机文件中?)DNS 查询消耗的带宽量从零到微小不等 - 数量级小于其余的外部流量。
任何环回数据包都不会像上面提到的海报那样到达网络。您不会为本地请求使用任何带宽。