Re: [bugreport] nginx -t возвращает 0 код завершения при наличии ошибок в конфиге

Igor Sysoev igor на sysoev.ru
Пт Авг 6 10:29:53 MSD 2010


On Fri, Aug 06, 2010 at 02:43:19AM +0300, Gena Makhomed wrote:

> On 06.08.2010 2:13, Anton Yuzhaninov wrote:
> 
> >> случайно сделал несколько ошибок в конфиге,
> >> но nginx -t вернул 0 код завершения:
> >>
> >> # nginx -t ; echo $?
> >> [warn]: conflicting server name "example.com" on ip:80, ignored
> >> [warn]: conflicting server name "*.example.com" on ip:80, ignored
> >> the configuration file /etc/nginx/conf/nginx.conf syntax is ok
> >> configuration file /etc/nginx/conf/nginx.conf test is successful
> >> 0
> 
> > Это не фатальные ошибки и с ними nginx может запуститься и работать.
> 
> может. только вот он игнорирует тот server { ... } который будет вторым.
> для конфигов с ошибками лучше бы nginx -t выдавал сообщение про ошибку и 
> возвращал ненулевой код возврата, чем 0 и "syntax is ok". нет разве?

У меня есть рабочая конфигурация, в которой выдаётся такое предупреждение.
Выглядит примерно так:

   server {
        listen       192.168.1.1:80;
        listen       8005;
        server_name  aaa.rambler.ru  192.168.1.1  "";

   server {
        listen       192.168.1.2:80;
        listen       8005;
        server_name  bbb.rambler.ru  192.168.1.2  "";

Выдаётся "[warn]: conflicting server name "" on 0.0.0.0:8005, ignored"


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru