Nginx TCP Fast Open Issue

Я настроил 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;

TCP Fast Open также включен на самом сервере:

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

Чтобы проверить, работает ли это, я настроил Chrome на ПК с Ubuntu для использования 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 используется и работает, как ожидалось? Дайте мне знать, если мне нужно предоставить больше информации.

1 ответ

Я провел несколько тестов с использованием кода быстрого открытия TCP по адресу https://github.com/yuryu/tfoecho

Мой счет 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, вы можете ясно увидеть Fast Open Cookie в настройках TCP.

Я тестировал на одной и той же паре машин с использованием Chromium и Nginx.

Хромированная версия:

Версия 55.0.2883.75, построенная на Debian stretch / sid, работает на Debian stretch/sid (64-битная версия)

Нет быстрых открытых файлов cookie в следах Wireshark. Даже с включенной опцией быстрого открытия в Chromium. Поэтому я подозреваю, что проблема заключается в Chromium.

Другие вопросы по тегам