Nginx TCP Fast Open Issue

前端之家收集整理的这篇文章主要介绍了Nginx TCP Fast Open Issue前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在我的一台服务器上配置了Nginx和Apache. Nginx服务器在端口81上侦听端口80和Apache.Nginx用作反向代理.在Nginx中,我配置了TCP Fast Open:

server {
    listen 107.6.155.74 fastopen=50;
    server_name servtest.com www.servtest.com;

服务器本身也启用了TCP Fast Open:

root@server:~/projects/Nginx# cat /proc/sys/net/ipv4/tcp_fastopen
3

为了测试这是否有效,我在运行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

我相信TCPFastOpenActive和/或TCPFastOpenPassive计数器不应该是“0”如果这工作.任何想法如何实际找出是否使用TCP Fast Open并按预期工作?如果我需要提供更多信息,请告诉我.

最佳答案
我在https://github.com/yuryu/tfoecho使用TCP快速开放测试代码完成了一些测试

使用测试代码时,我的计数TCPFastOpenPassive会上升.

$grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 87-92  | column -t
TCPOFOMerge  TCPChallengeACK  TCPSYNChallenge  TCPFastOpenActive  TCPFastOpenActiveFail  TCPFastOpenPassive
1000         56217            1316             0                  0                      2041

所以我认为你的分析方法是正确的.

运行wireshark,您可以清楚地看到TCP选项下的Fast Open Cookie.

我使用Chromium和Nginx测试了相同的一对机器.

铬版本:

Version 55.0.2883.75 built on Debian stretch/sid,running on Debian stretch/sid (64-bit)

wireshark痕迹中没有快速打开的cookie.即使在Chromium中启用了快速打开选项.所以我怀疑问题在于Chromium.

原文链接:https://www.f2er.com/nginx/435057.html

猜你在找的Nginx相关文章