从127.0.0.1下载文件

nginx监听在127.0.0.1,和192.168.1.2上,为什么从127.0.0.1地址下载文件比192.168.1.2地址下载快速?

内部机制怎么理解?

阅读 3.1k
3 个回答

隐隐约约记得在哪看过127.0.0.1不走网卡,真实ip会走网卡。

192.168.1.2 是局域网地址, 数据会在网卡上绕一圈, 如果不是本机的话, 就还要网线上走一下.
127.0.0.1 是回环地址, 数据在一个操作系统虚拟的网卡(一般叫 loopback, ifconfig 的 lo 接口), (我猜的: 内核可以直接将数据发给应用程序, 所以会快点).

首先
无论是127.0.0.1(环回口) 还是其它ip,数据都是通过网卡传输
只有local(本地服务器),是直接访问本地数据,不受防火墙和网卡的限制

其次
nginx是工作在第七层的负载均衡服务器,并不是应用服务器
nginx监听到客户端的请求时,会先建立与客户端的TCP连接(三次握手)接收到客户端发送的真正应用层内容报文
nginx随后根据具体报文和负载均衡设置最终选择应用服务器,建立与应用服务器的TCP连接,传输数据

nginx工作在第七层,相对于工作在第四层的LVS更智能,可提供缓存等功能,同时资源消耗也更大

最后
我并不是很清楚为什么会快

一点疑问
同时监听多个ip,后端是对应的多个应用服务么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题