On 12.07.2022 22:59, Илья Шипицин wrote:
если рассматривать с точки зрения эффективного использования диска, то поля $scheme, $host являются практически константами, можно не логировать их на каждую строчку лога (а, например, разнести разные host-ы по разным логам).
Разнести разные host-ы по разным логам - это на самом деле плохая идея. Когда различных хостов десятки и сотни - это становится очень неудобно. Кроме того, это отрицательно сказывается на производительности сервера, особенно если используется HDD а не SSD. Имея в наличии один access.log с помощью grep можно легко получить из него access.log для любого сайта: grep -P '\texample.com\t' access.log | less -S $scheme занимает всего несколько байт, и лучше уж пусть будет, для полноты картины, по сравнению с $http_user_agent - это мелочь. Для удобства чтения лога и для уменьшения его размера - можно из лога убрать информацию про таймзону: map $time_iso8601 $time { "~([0-9-]+)T([0-9:]+)" "$1 $2"; volatile; } log_format frontend '$time\t...'; Тогда время в логе будет выглядеть примерно так: 2022-07-13 11:34:40 а не так: 2022-07-13T11:34:40+03:00 Переменная $time вместо $time_iso8601 в логе дает и меньший объем лога и его лучшую читаемость. Недостаток у этого варианта с переменной $time только один - приходится программировать на конфигах nginx, используя map и регулярные выражения, - это несколько увеличивает объем конфига, но должно работать достаточно быстро. -- Best regards, Gena _______________________________________________ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org