Re: [bugreport] nginx -t возвращает 0 код завершения при наличии ошибок в конфиге
Gena Makhomed
gmm на csdoc.com
Вс Авг 22 23:04:01 MSD 2010
On 06.08.2010 9:29, Igor Sysoev 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"
понятно.
можно ли сделать дополнительный параметр командной строки -q
чтобы nginx не выводил в стандартный поток ошибок сообщения
the configuration file /etc/nginx/conf/nginx.conf syntax is ok
configuration file /etc/nginx/conf/nginx.conf test is successful
которые собственно не являются сообщениями об ошибках/предупреждениями?
патч в аттаче.
P.S. этот патч необходим для того, чтобы в Linux`е можно было сделать
защиту операций restart / online_upgrade / reload от ошибок в конфиге
и не выводить ничего лишнего на консоль, если ошибок и предупреждений
нет, но выводить сообщения про ошибки и предупреждения, если они есть.
примерно таким образом:
restart() {
$binary -q -t -c $config || return 6
stop
start
}
--
Best regards,
Gena
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: nginx.c.diff
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100822/5214c87d/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ngx_cycle.c.diff
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100822/5214c87d/attachment-0001.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ngx_cycle.h.diff
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100822/5214c87d/attachment-0002.ksh>
Подробная информация о списке рассылки nginx-ru