proxy_next_upstream http_403 code

Aleksey Chirkin a4irkin at gmail.com
Tue Apr 23 07:03:15 UTC 2013


При возникновении 403-ей ошибки запрос не будет передан на следующий
сервер, т.к. директива proxy_next_upstream не поддерживает этот код. Я
указал на пример где перехват этого кода действительно нужен в случае когда
по для синхронизации блокирует доступ к синхронизируемым файлам путем
снятия прав доступа.
Alex Belyansky, спасибо, вы указали на один из возможных вариантов решения
проблемы, он работает но использование его не совсем удобно,
т.к. http://upstream должен указывать на отличный апстрим от того который
перенаправил запрос на текущий сервер, иначе запрос вернется
обратно, к тому же это это вряд ли будет работать в конфигурации апстримов
с резервными серверами.
Директива proxy_next_upstream в данном случае намного удобнее.



23 апреля 2013 г., 10:27 пользователь Alex Belyansky
<alex.barut at gmail.com>написал:

>  А чем не устраивает
>
> recursive_error_pages on;
> error_page 403 = @upstream;
>
> location @upstream {
>     proxy_pass    http://upstream;
> }
>
> Насколько я понял документацию, то при возникновении 403-ей от сервера в
> апстриме nginx снова передаст ее туда же, но уже скорее всего на другой из
> бекендов.
>
> Поправьте если я ошибаюсь.
>
>
> On 23.04.2013 09:30, Aleksey Chirkin wrote:
>
> Я наблюдал за тем как работает rsync и заметил что на время копирования он
> блокирует доступ к директории устанавливая ей chmod 600, после выполнения
> синхронизации он устанавливает правильные права доступа. Вот в этот
> промежуток копирования и нужно перехватывать 403. Может я не понял вопроса?
> Вроде все делаю правильно.
>
>
> 22 апреля 2013 г., 23:33 пользователь Dmitry Morozovsky <marck at rinet.ru>написал:
>
>>  On Mon, 22 Apr 2013, Aleksey Chirkin wrote:
>>
>> > В моей конфигурации nginx раздает файлы и балансирует нагрузку между
>> > серверами.
>> > Я использую rsync для синхронизации данных между машинами.
>> > Во время синхронизации rsync назначает chmod 600 на синхронизируемые
>> > директории. Nginx отвечает кодом 403 т.к. ресурс не достижим из-за
>> > ограниченных привилегий.
>> > Я хотел бы перехватить код 403 и перенаправить запрос на другой сервер.
>> >
>> > Не могли бы вы добавить поддержку кода 403 в proxy_next_upstream
>> директиве?
>>
>>  Простите за нескромный вопрос, а *зачем* вы так делаете?
>>
>> Если не предпринимать специальных усилий, то новые файлы в процессе rsync
>> появляются на месте атомарно -- всё должно работать и так.
>>
>> --
>> Sincerely,
>> D.Marck                                     [DM5020, MCK-RIPE, DM3-RIPN]
>> [ FreeBSD committer:                                 marck at FreeBSD.org ]
>> ------------------------------------------------------------------------
>> *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck at rinet.ru ***
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
>
> _______________________________________________
> nginx-ru mailing listnginx-ru at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130423/f626e495/attachment-0001.html>


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