Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
August 05, 2010 10:46PM
Hello!

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".
> нет разве?

Ещё раз: это не ошибка, а предупреждение. Такие же выдаются,
например, для deprecated директив, для debug-only директив если
бинарник собран без дебага и т.п. Работать с конфигом, выдающим
предупреждения - можно, и зачастую нужно. А код возврата отражает
простой факт - сможет nginx с таким конфигом работать, или нет.

Что касается того факта что дублирующиеся имена серверов не
приводят к ошибке, а лишь к предупреждению - то это совершенно
отдельный вопрос для обсуждения. И я например склонен думать что
текущее поведение разумно. Конфигурация чётко задана, а что там в
конфиге лишнего понаписано - вообще говоря и проверять-то никто не
обещал (и например для регулярных выражений - никто и не проверяет).

> >В случае фатальных ошибок exit code не равен нулю.
> >
>
> из nginx -t возвращать нулевой код возврата в случае наличия
> ошибок в конфиге - это мягко говоря, неожиданное поведение.
>
> если я не ошибаюсь, эта "фича" появилась для того, чтобы
> после "service nginx restart" nginx мог запуститься даже
> если в конфиге были какие-то "нефатальные" ошибки.
> но при этом появился и баг в работе nginx -t.

Нет (c) Фарид Вагапов

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Gena Makhomed August 05, 2010 06:48PM

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

Anton Yuzhaninov August 05, 2010 07:14PM

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

Gena Makhomed August 05, 2010 07:44PM

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

Maxim Dounin August 05, 2010 10:46PM

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

Gena Makhomed August 22, 2010 03:30PM

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

Igor Sysoev August 06, 2010 02:30AM

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

Gena Makhomed August 22, 2010 03:06PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 195
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready