nginx -t и EADDRNOTAVAIL
Igor Sysoev
is at rambler-co.ru
Sun Sep 21 19:24:59 MSD 2008
On Sun, Sep 21, 2008 at 04:55:56PM +0200, Roxis wrote:
> On Sunday 21 September 2008, Igor Sysoev wrote:
> > On Sun, Sep 21, 2008 at 04:30:42PM +0200, Roxis wrote:
> > > On Sunday 21 September 2008, Sergey Smitienko wrote:
> > > > Посмотри в этот момент "ifconfig -a | grep inet" и "netstat -an | grep
> > > > 80". Похоже что у тебя нет IP 80.80.80.80 на машине ни на каком
> > > > интерфейсе. Возможно ошибка в config-файле и надо поменять строку
> > > > 80.80.80.80:80 на 0.0.0.0:80 ?
> > >
> > > да, имеенно, ошибка в config-файле.
> > > а nginx -t выводит ... syntax is ok
> >
> > Ну так syntax-то действительно ok - 80.80.80.80:80 - вполне валидный адрес.
> > nginx теструет конфиг в два этапа: сначала парсинг (синтаксис), а потом
> > пытается конифигурацию применить (test): открывает файлы, байндится и
> > прочее.
>
> тогда дополнение
> если в системе нет юзера/группы nginx не выводит
> "syntax is ok"
>
> # nginx -t
> 2008/09/21 16:55:15 [emerg] 3884#0: getgrnam("test") failed
> in /usr/nginx/conf/nginx.conf:2
> 2008/09/21 16:55:15 [emerg] 3884#0: the configuration
> file /usr/nginx/conf/nginx.conf test failed
Какие-то вещи можно проверить на стадии парсинга конфига. В случае
юзера/группы сразу определяется номер пользователя. То же происходит
с резолвингом имён. А, например, bind() делается только после разбора
всего конфига, потому что можно байндиться к *:80, а можно к конкретным
адресам, если *:80 не оказалось.
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list