Nginx 与代理服务共用 443 端口的几种方案小结
单机上既要跑网站又要跑 TLS 代理时,443 端口只有一个。本文对比「应用层 fallback 回落」与「nginx stream + ssl_preread 按 SNI 分流」两种思路,讲清各自工作在哪一层、证书由谁持有,以及如何配合伪装站点降低被探测的概率。
阅读全文 »后端开发 · Linux 运维 · 网络协议 · 数据库 · 容器与自动化,偶尔写点折腾笔记。
单机上既要跑网站又要跑 TLS 代理时,443 端口只有一个。本文对比「应用层 fallback 回落」与「nginx stream + ssl_preread 按 SNI 分流」两种思路,讲清各自工作在哪一层、证书由谁持有,以及如何配合伪装站点降低被探测的概率。
阅读全文 »连接时通时不通、握手被 RST、还是应用层返回错误?现象相似但原因完全不同。本文用一个实际案例演示 tcpdump 常用过滤表达式、远端抓包后拉回本地用 Wireshark 看 TCP 三次握手与 RST 的时序。
阅读全文 »HTTPS 建立加密通道前,客户端得先告诉服务器「我要访问哪个域名」,否则服务器不知道该出示哪张证书——这就是 SNI。它在 ClientHello 里明文传输,也是 443 按域名分流(ssl_preread)能成立的基础。
把域名转发到本机端口的服务,proxy_pass 后面要不要加斜杠、Host/X-Forwarded-For 怎么传、WebSocket 要加 Upgrade 头,这几个细节最容易 404 或 502。给一份能直接抄的模板。
TCP 可靠但有队头阻塞,三次握手+重传带来延迟;UDP 不保证交付但快。DNS、游戏、实时音视频多用 UDP;而很多代理协议会在 UDP 之上自己实现可靠传输或 relay UDP over TCP。