在「Enabling TCP Fast Open for NGINX on CentOS 7」這邊看到 nginx 對 TCP Fast Open (TFO,RFC 7413) 的支援早在 1.5.8 就有了,而 Linux Kernel 也是 3.7 之後就全面支援了。
TCP Fast Open 利用第一次連線後產生的 TCP cookie,在第二次連線時可以在 3-way handshake 的過程就開始傳輸,藉此大幅降低 latency。
設定方法不難,先在 kernel 設定 net.ipv4.tcp_fastopen=3
,再加上 fastopen=number
就可以了,像是這樣:
listen 80 fastopen=256
不過目前 NGINX Mainline 上的版本好像沒有編進去,暫時沒辦法測...