От скорости наполнения лога зависит. Если при максимальной нагрузке у Вас наваливает 100 килобайт логов в секунду, то выставьте 100-300.
Не стоит насиловать жесткий диск.
Евгений Безымянников: А вообще на крупном проэкте с посещаемостью 100-200 k в сутки какой buffer оптимальнее? Максимум, что я видел, это 512 ставят, есть ли какой-то предел для буфера?
kkoshakk: предел задаёт логика. Если сброс буфера на диск раз в секунду, то норм. Если сделаете пару мегабайт, то стоит понимать что сброс буфера на диск нагрузит пиково его. Засеките насколько лог растёт в секунду и вставьте в конфиг двойной размер. Этого будет достаточно.
Евгений Безымянников: а еще такой вопросик, параметр flush чем нибудь может быть полезен, он как-нибудь влияет на улучшение производительности или стабильности?
kkoshakk:
"
При включённой буферизации данные записываются в файл:
если очередная строка лога не помещается в буфер;
если данные в буфере находятся дольше интервала времени, заданного параметром flush;
при переоткрытии лог-файла или завершении рабочего процесса.
"
Соответственно если стоит буфер пару мегабайт, а flush = паре секунд, то что быстрее наступит, то и вызовет сброс буфера лога.
kkoshakk: Оставьте дефолтным. Когда будете ставить какую нить систему мониторинга, то в документации к ней будет описание нужных полей. К примеру https://github.com/lebinh/ngxtop
Евгений Безымянников: Я имел ввиду, мож. кроме стандартных переменных нужно еще какие-нибудь важные переменные добавить или наоборот из дефолтного убрать ненужные переменные. Например, я немного уже изменил log_format что бы видеть реальные ip пользователей, а не проксю:
log_format main '$remote_addr forwarded for $http_x_real_ip - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';