不同情况下处理方式有所不同:

  1. 输入域名访问:

    • 浏览器首先会检查本地缓存,看是否有对应域名的解析记录。
    • 如果本地缓存没有,浏览器会查找操作系统的 hosts 文件,看是否有对应的 IP 地址。
    • 如果 hosts 文件中没有,浏览器会向 DNS 服务器发起域名解析请求,获取对应的 IP 地址。
  2. 输入 IP 访问:

    • 浏览器会直接使用输入的 IP 地址进行访问,不再进行 DNS 解析。此时不会再向 DNS 服务器发起域名解析请求。

总体来说,如果你直接输入 IP 地址访问,浏览器会跳过 DNS 解析的步骤,直接使用输入的 IP 地址

关于nginx的server_name

如果有多个server监听同一个端口 当用IP访问时候  server_name首先匹配server_name 是对应IP的那个server 如果没有server_name是那个IP  那么哪个server在前就匹配哪个server 当用域名访问时候 哪个server_name和域名相同就用哪个 这里和用localhost或者127.0.0.1无关  只会和请求的host匹配 匹配不到哪个server在前就用哪个

有点绕    在多个域名绑定同一个IP时候

就是说nginx首先会用server_name和请求的host做匹配 匹配上了 就用哪个server

匹配不上的话,哪个server在前就用哪个  和写localhost  127.0.0.1  没半毛钱关系  除非你在本地测试时候,写了localhost或者127.0.0.1 此时也是因为和请求的host匹配

02-13 15:31