nginx处理http请求流程
客户端发起请求
-
浏览器访问 www.test.com 。
-
浏览器请求 本地DNS,通过 本地DNS 最终找到授权 DNS 获取到IP。
-
请求目的IP的Web 服务器建立 tcp,通过三次握手建立连接。
-
发起 http 请求(ip的80 端口)。
-
发起 HTTP 请求报文(请求头里携带: host www.test.com 字段)
服务器接收请求
-
监听到客户端对网卡的 80 端口的请求。
-
读取接收到的 http 报文里的信息。
-
读取 Nginx配置文件虚拟主机 server 标签
-
先匹配 Server 标签中请求的端口号。
-
相同端口再去匹配 server 标签对应 server name 指定的域名(和请求头里 host字段比对)。
-
把对应域名下面站点目录下的首页文件 (index.xx) 发给客户端。
-
如果没有匹配的域名,就把排在第一个顺序 server 标签虚拟机对应内容发给客户端。
-
断开连接,四次挥手