Рано или поздно логи запросов/ошибок в nginx могут вырасти до неимоверных размеров, тем самым может случиться переполнение дискового пространства и, как следствие - отказ от обслуживания сервиса. Чтобы избежать данной проблемы, необходимо добавить ротацию логов nginx. Для FreeBSD и местного newsyslog это делается единственной строчкой в newsyslog.conf:
# vi /etc/newsyslog.conf
# Nginx logs /var/log/nginx*log root:wheel 644 20 5000 * GZ /var/run/nginx.pid 30
, где по порядку:
/var/log/nginx*log - логи, которым необходима ротация root:wheel - необязательный параметр пользователь:группа для архивных файлов 644 - права на архивы и лог-файл 20 - количество хранимых архивов 5000 - размер лог-файла в килобайтах, превышение которого является условием для ротации данного лога * - когда по времени подвергать ротации данный лог GZ - метод архивирования лога /var/run/nginx.pid - расположение pid-файла процесса, который использует данный лог-файл 30 - сигнал, посылаемый процессу, который использует данный лог-файл
После этого можно преждевременно запустить ротацию логов, чтобы убедиться в корректности архивации.
# newsyslog
Не лишнем будет проверить результат (лог-файлы заархивированы и nginx может писать в обнулённый файл-лог). Profit!