Путаница в последовательность записей в логах

grey nginx-forum на forum.nginx.org
Ср Июл 15 10:18:58 UTC 2020


Приветствую всех!


Заметил тут одну вещь: в файле access.log время запросов идет не по порядку,
например:

127.0.0.1 - - [12/Jul/2020:23:30:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"
127.0.0.1 - - [13/Jul/2020:00:15:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"
127.0.0.1 - - [13/Jul/2020:00:45:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"
127.0.0.1 - - [12/Jul/2020:03:00:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"

или вот

127.0.0.1 - - [12/Jul/2020:02:20:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"
45.157.*.* - - [12/Jul/2020:02:23:53 +0300] "GET / HTTP/1.1" 403 548 "-"
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/52.0.2743.116 Safari/537.36"
127.0.0.1 - - [12/Jul/2020:02:30:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"
127.0.0.1 - - [11/Jul/2020:02:40:00 +0300] "GET /nginx-status HTTP/1.0" 200
117 "-" "-"

Начал разбираться. Вот что выяснил - существует две конфигурации для двух
разных адресов:
1. server
{
	listen 127.0.0.1:80;
	server_name 127.0.0.1;

	location /nginx-status 	{ 		stub_status;	}
}

2. server {
	listen       80;
	server_name  11.22.33.44;

	access_log  logs/access.log  combined buffer=64k;
...
}

Я так понимаю дело в буферизации. Но почему конфигурация 2 с включенной
буферизацией влияет на конфигурацию 1 на запись логов без буфера? По идее
логи о состоянии сервера при обращении с локального адреса 127.0.0.1 должны
писаться сразу в файл, а с внешнего адреса - блоками по 64Кб.

В принципе, меня устроит однословный ответ разработчиков что все ок и так и
задумано или это баг :)

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,288706,288706#msg-288706



Подробная информация о списке рассылки nginx-ru