<div dir="ltr">При возникновении 403-ей ошибки запрос не будет передан на следующий сервер, т.к. директива proxy_next_upstream не поддерживает этот код. Я указал на пример где перехват этого кода действительно нужен в случае когда по для синхронизации блокирует доступ к синхронизируемым файлам путем снятия прав доступа.<div>
<span style="font-family:arial,sans-serif;font-size:13px;font-weight:bold;text-align:left;white-space:nowrap">Alex Belyansky, </span><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap">спасибо, </span><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap">вы указали на один из возможных вариантов решения проблемы, он работает но использование его не совсем удобно,</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap">т.к. </span><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap"><a href="http://upstream">http://upstream</a> должен указывать на отличный апстрим от того который перенаправил запрос на текущий сервер, иначе запрос вернется</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap">обратно, к тому же это это вряд ли будет работать в конфигурации апстримов с резервными серверами.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap">Директива </span>proxy_next_upstream в данном случае намного удобнее.</div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">23 апреля 2013 г., 10:27 пользователь Alex Belyansky <span dir="ltr"><<a href="mailto:alex.barut@gmail.com" target="_blank">alex.barut@gmail.com</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>А чем не устраивает <br>
<br>
recursive_error_pages on;<br>
error_page 403 = @upstream;<br>
<br>
location @upstream {<br>
proxy_pass <a href="http://upstream" target="_blank">http://upstream</a>;<br>
}<br>
<br>
Насколько я понял документацию, то при возникновении 403-ей от
сервера в апстриме nginx снова передаст ее туда же, но уже скорее
всего на другой из бекендов.<br>
<br>
Поправьте если я ошибаюсь.<div><div class="h5"><br>
<br>
On 23.04.2013 09:30, Aleksey Chirkin wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Я наблюдал за тем как работает rsync и заметил что
на время копирования он блокирует доступ к директории
устанавливая ей chmod 600, после выполнения синхронизации он
устанавливает правильные права доступа. Вот в этот промежуток
копирования и нужно перехватывать 403. Может я не понял вопроса?
Вроде все делаю правильно.</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">22 апреля 2013 г., 23:33 пользователь
Dmitry Morozovsky <span dir="ltr"><<a href="mailto:marck@rinet.ru" target="_blank">marck@rinet.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>On Mon, 22 Apr 2013, Aleksey Chirkin
wrote:<br>
<br>
> В моей конфигурации nginx раздает файлы и
балансирует нагрузку между<br>
> серверами.<br>
> Я использую rsync для синхронизации данных между
машинами.<br>
> Во время синхронизации rsync назначает chmod 600 на
синхронизируемые<br>
> директории. Nginx отвечает кодом 403 т.к. ресурс не
достижим из-за<br>
> ограниченных привилегий.<br>
> Я хотел бы перехватить код 403 и перенаправить
запрос на другой сервер.<br>
><br>
> Не могли бы вы добавить поддержку кода 403 в
proxy_next_upstream директиве?<br>
<br>
</div>
</div>
Простите за нескромный вопрос, а *зачем* вы так делаете?<br>
<br>
Если не предпринимать специальных усилий, то новые файлы в
процессе rsync<br>
появляются на месте атомарно -- всё должно работать и так.<br>
<span><font color="#888888"><br>
--<br>
Sincerely,<br>
D.Marck [DM5020,
MCK-RIPE, DM3-RIPN]<br>
[ FreeBSD committer:
<a href="mailto:marck@FreeBSD.org" target="_blank">marck@FreeBSD.org</a> ]<br>
------------------------------------------------------------------------<br>
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- <a href="mailto:marck@rinet.ru" target="_blank">marck@rinet.ru</a>
***<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></font></span></blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
nginx-ru mailing list
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br></blockquote></div><br></div>