1. 外部建立连接过程
①外网客户端访问 http://www.baidu.com/ -> 地址解析
DNS 解析顺序:本地内存缓存 -> /etc/hosts -> /etc/resolv.conf -> 网卡文件 -> DNS 服务器(迭代,递归两种方式获取 IP 和域名,DNS 协议既有 TCP 又有 UDP,53 端口)
②客户端和服务端建立连接
HTTP1.1建立长连接(请求头、请求行、请求体,方式(GET、POST)
③TCP三次握手过程
TCP 建立连接的过程称为三次握手,为了确认双方收发数据的能力
1.发送方向接收方发送SYN请求
⒉接收方接收到此请求后会主动回复一个ACK,并且同时也发送一个SYN请求
3.发送方接收到接收方发来的SYN请求后,给出一个ACK确认
2. 企业内部数据交互
①防火墙(软硬件)
通过流量过滤、ACL 访问控制、黑白名单、安全组、规则过滤、SNAT、DNAT 等方式控制连接请求并交给负载均衡器
②负载均衡器
LVS+Keepalived、Haproxy、SLB、硬件负载均衡器 …
负载均衡器将流量分发给对应的业务模块( NG+Keepalived 或 apache+Keepalived
- harpoxy 的服务端中会有 socket 连接,haproxy 的进程监听、接收然后遍历配置文件,找到转发的配置(nginx/apache 的 keepalived VIP 地址),然后对数据报文进行封装和转发,最终转发到 NG/apache 的 VIP。
③流量分发
流量发送到 NG/apache 的 80 端口,会被监听 80 端口的后台进程捕捉到 -> 接待请求然后遍历对应的配置文件。( socket 连接被 NG/apache 对应的后台进程捕捉到然后交给服务程序处理)
- 第一条路径
nginx+keepalived 中的 nginx.conf 匹配 location(location 最少有三种,location /,location /static,location (.+) .jsp