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