面试复习:网络 / 操作系统 / Linux / Git 基础与线上排查(TCP、HTTP、HTTPS、epoll、零拷贝、排查命令)初中高级
后端面试绕不开的底层功课:TCP 三握四挥/拥塞控制/TIME_WAIT、HTTP/1.1/2/3、HTTPS 握手、DNS、epoll 与零拷贝、进程线程协程、Linux 排查命令、Git 与 Docker/K8s 基础,按初中高三层整理,附追问速查表。
从一个关键词,发现新的思路。
后端面试绕不开的底层功课:TCP 三握四挥/拥塞控制/TIME_WAIT、HTTP/1.1/2/3、HTTPS 握手、DNS、epoll 与零拷贝、进程线程协程、Linux 排查命令、Git 与 Docker/K8s 基础,按初中高三层整理,附追问速查表。
容器访问宿主机 MySQL 报 Connection refused,同一 compose 里 localhost 也不通。梳理 host.docker.internal 与 host-gateway、服务名 DNS、-p 与 EXPOSE、默认 bridge 无 DNS、ufw 被 Docker 绕过,附 docker network inspect 与 nsenter 排查命令和网络拓扑图。
接口突然大面积报 Too many open files。先分清 ulimit、limits.conf、systemd LimitNOFILE 与容器的差异,再用 lsof、ss 统计连接状态,定位到 CLOSE_WAIT 堆积,根因是 HttpClient 响应没关闭导致连接泄漏。
一次上线连踩两个 Nginx 默认值:client_max_body_size 默认 1m 导致上传 413,Spring Boot multipart 与多层代理要逐层放开;WebSocket 每 60 秒断线,缺 Upgrade 头且 proxy_read_timeout 默认 60s。附 curl 复现命令与心跳方案。
前端喊“接口 502”,后端说“我这儿好好的”。本文讲清 502(上游连不上/被掐断)与 504(上游超时)的区别,用 error.log 原文加自定义 access_log 三个 upstream 变量定位问题,并解释 keepalive、重启瞬间 502 与 proxy_next_upstream 的坑。