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