我已经在我的一台服务器上配置了 Nginx 和 Apache。nginx 服务器侦听端口 80,Apache 侦听端口 81。Nginx 充当反向代理。在nginx中我配置了TCP Fast Open:
server {
listen 107.6.155.74 fastopen=50;
server_name servtest.com www.servtest.com;
Run Code Online (Sandbox Code Playgroud)
服务器本身也启用了 TCP Fast Open:
root@server:~/projects/nginx# cat /proc/sys/net/ipv4/tcp_fastopen
3
Run Code Online (Sandbox Code Playgroud)
为了测试这是否有效,我在运行 Ubuntu 的 PC 上配置 Chrome 以使用 TCP Fast Open(chrome://flags 页面)。tcp_fastopen 设置在客户端设置为 1。
在服务器上,我使用以下 grep 来确定是否使用了 TCP Fast Open:
grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92 | column -t
TCPOFOMerge TCPChallengeACK TCPSYNChallenge TCPFastOpenActive TCPFastOpenPassive TCPFastOpenPassiveFail
0 2 2 0 0 0
Run Code Online (Sandbox Code Playgroud)
我相信 TCPFastOpenActive 和/或 TCPFastOpenPassive 计数器不应该是“0”,如果这有效。任何想法如何实际找出是否使用 TCP Fast Open 并按预期工作?如果我需要提供更多信息,请告诉我。