Можно ли запустить приложение rails с пассажиром nginx без перезагрузки? - PullRequest
5 голосов
/ 18 ноября 2010

Можно выполнить logrotate без перезапуска nginx (просто отправьте сигнал USR1 на nginx, он выполнит свою работу).Интересно, это возможно для моего приложения рельсы (пассажир nginx).Не стоит перезапускать мои приложения на rails только для того, чтобы войти в систему.

Ответы [ 2 ]

28 голосов
/ 12 апреля 2011

Настройка logrotate довольно проста, чтобы избавиться от этого

/path/to/rails_apps/*/shared/log/*.log {
  daily
  missingok
  rotate 30
  compress
  delaycompress
  copytruncate
}

copytruncate в основном копирует содержимое в новый файл и усекает старый файл. это устраняет необходимость перезапуска.

3 голосов
/ 18 ноября 2010

Если вы говорите о ротации журнала приложения rails, вы можете сделать это, поместив

 config.logger = Logger.new(config.log_path, 10, 1024**2)

в файл среды.2-й аргумент - это количество файлов .log, которые вы хотели бы сохранить, а 3-й - размер в байтах, доступ к которым файлам разрешено выполнять до их поворота.Эта конфигурация означает 10 файлов по 1 мегабайту.Может быть не так настраиваемо, как, возможно, logrotate (без поддержки сжатия и т. Д.), Но он позволяет хранить все ваши файлы журналов в приложении.Это обычно работает для меня.

Также нашел это , если хотите придерживаться ротации журнала через nginx.

...