У меня есть следующая архитектура сайта:
Интернет --> балансировщик нагрузки --> веб-сервер/api
Таким образом, на машине с балансировщиком нагрузки есть nginx, настроенный как балансировщик нагрузки, а также есть nginx на узле веб-сервера / API, работающий как обратный прокси. Сервер веб-сервера получает запросы от браузеров (через балансировщик нагрузки), обращается к API через HTTP и отображает страницу в браузере. Веб-сервер и API являются приложениями nodejs.
Балансировщик нагрузки nginx имеет записи в журнале для подключений веб-сервера -> API, но он не регистрирует начальные подключения браузера клиента -> веб-сервера до тех пор, пока браузер не будет закрыт (проверено с Chrome и Firefox). Как будто соединение сохраняется в незавершенном состоянии до тех пор, пока браузер не будет полностью закрыт, после чего записывается запись в журнал.
Журналы доступа к балансировщику нагрузки nginx:
110.110.110.101 - - [21/Feb/2019:22:21:23 +0000] loadbalancer01 TCP 200 186833 825 0.047 upstream: 10.0.0.100:443
110.110.110.100 - - [21/Feb/2019:22:21:37 +0000] loadbalancer01 TCP 200 24327 3856 21.991 upstream: 10.0.0.100:443 <-- only created after browser is closed
- 110.110.110.100 - ip клиента, подключающегося к Chrome/Firefox
- 110.110.110.101 — общедоступный интерфейс веб-сервера/узла API
- 10.0.0.100 — частный интерфейс веб-сервера/узла API
Соединение веб-сервер-> API регистрируется первым, хотя оно явно происходит вторым, а соединение клиентского браузера-> веб-сервера регистрируется только тогда, когда клиентский браузер полностью закрыт.
Происходит ли какая-то буферизация? Я не использую параметр буфера в конфигурации ведения журнала потокового блока:
log_format combined '$remote_addr - - [$time_local] $hostname $protocol $status $bytes_sent $bytes_received $session_time upstream: $upstream_addr';
access_log /var/log/nginx/access.log combined;
Почему соединение регистрируется только тогда, когда браузер закрыт? Как я могу гарантировать, что начальное соединение регистрируется, когда соединение происходит?
[обновление - добавлена конфигурация журнала, также обратите внимание, что ips были отредактированы]