При возникновении 403-ей ошибки запрос не будет передан на следующий сервер, т.к. директива proxy_next_upstream не поддерживает этот код. Я указал на пример где перехват этого кода действительно нужен в случае когда по для синхронизации блокирует доступ к синхронизируемым файлам путем снятия прав доступа. Alex Belyansky, спасибо, вы указали на один из возможных вариантов решения проблемы, он работает но использование его не совсем удобно, т.к. http://upstream должен указывать на отличный апстрим от того который перенаправил запрос на текущий сервер, иначе запрос вернется обратно, к тому же это это вряд ли будет работать в конфигурации апстримов с резервными серверами. Директива proxy_next_upstream в данном случае намного удобнее.
23 апреля 2013 г., 10:27 пользователь Alex Belyansky <[email protected]>написал: > А чем не устраивает > > 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 > <[email protected]>написал: > >> 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: [email protected] ] >> ------------------------------------------------------------------------ >> *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- [email protected] *** >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> nginx-ru mailing list >> [email protected] >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > _______________________________________________ > nginx-ru mailing > [email protected]http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru >
_______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
