Re: Nginx не отвечает на запросы
Maxim Dounin
mdounin на mdounin.ru
Пн Сен 19 16:07:13 UTC 2016
Hello!
On Mon, Sep 19, 2016 at 11:14:40AM -0400, Mikanoshi wrote:
> Evgeniy Berdnikov Wrote:
> -------------------------------------------------------
>
> > Я предлагал посмотреть, куда показывает файловый дескриптор (в трейсе
> > он был с номером 37), а не какие дескрипторы открыты на
> > nginx-error.log.
>
> # truss -s 1024 -p 15495
> close(49) ERR#9 'Bad file
> descriptor'
> write(36,"2016/09/19 18:16:03 [crit] 15495#0: close() socket 49 failed (9:
> Bad file descriptor)\n",86) = 86 (0x56)
>
> lsof:
> nginx 15495 www 36w VREG 0,80 32017
> 722956 / (/dev/da0p2)
>
> procstat:
> 15495 nginx 36 v r -wa----- 14 32103 - -
>
> # find /var/log -inum 722956
> /var/log/nginx/error.log
>
> И правда, лог там. Я не увидел, что такая папка есть, её же не должно быть,
> error_log у меня переопределён.
Ну т.е. у вас используется не та сборка, параметры которой вы
приводили в исходном письме - видимо, вы обновились до свежей
версии порта, а там изменены пути к логам по умолчанию. Исходное
же положение про "по умолчанию логгируется туда, куда показывает
параметр configure --error-log-path" - по прежнему в силе.
> Если удалить, то nginx вообще не стартует, т.к. не может лог открыть.
> Перенос error_log из http в main даёт запустить, но всё равно:
>
> nginx: [alert] could not open error log file: open()
> "/var/log/nginx/error.log" failed (2: No such file or directory)
>
> Как полностью-то изменить путь?)
Пересобрать с другим параметром --error-log-path.
Вкомпилированный error log всегда открывается для записи ошибок в
процессе парсинга конфигурации, см. подробности тут:
https://trac.nginx.org/nginx/ticket/147
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru