Welcome! Log In Create A New Profile

Advanced

Re: Как обработать редирект и проксировать результат приложению?

Илья Шипицин
June 29, 2020 03:50AM
я примерно такое имел в виду.

а вот расскажите, как будет работать, если на POST запрос будет 301, вы в
@handle_redirect отправите тоже POST ?

пн, 29 июн. 2020 г. в 12:03, Александр Карабанов <zend.karabanov@gmail.com>:

> Вот такое решение нашёл:
>
> https://serverfault.com/questions/423265/how-to-follow-http-redirects-inside-nginx
>
> server {
> ...
>
> location / {
> proxy_pass http://backend;
> # You may need to uncomment the following line if your redirects are relative, e.g. /foo/bar #proxy_redirect / /; proxy_intercept_errors on;
> error_page 301 302 307 = @handle_redirect;
> }
>
> location @handle_redirect {
> set $saved_redirect_location '$upstream_http_location';
> proxy_pass $saved_redirect_location;
> }}
>
>
> пт, 26 июн. 2020 г. в 15:57, Илья Шипицин <chipitsine@gmail.com>:
>
>> это не во всех случаях можно сделать корректно.
>>
>> например, 301 по RFC можно отвечать только на GET. а если сервер ответил
>> 301 на POST, какой запрос надо отправить на новый адрес, тоже POST ? или
>> GET ?
>> вот именно этот выбор и доносится до клиента, когда 301 транслируется
>> один в один.
>>
>> теоретически, вы можете накостылить обработчик 301-ошибки, назначить его
>> на локейшен, и в локейшене сделать proxy_pass
>> но это очень скользкая дорожка
>>
>> пт, 26 июн. 2020 г. в 17:41, Александр Карабанов <
>> zend.karabanov@gmail.com>:
>>
>>> Здравствуйте.
>>>
>>> Приложению запрещено самостоятельно открывать соединения с внешним
>>> миром. Приложение отправляет запрос на proxykipalive.lan, а Nginx
>>> проксирует этот запрос на целевой хост (это сделано, чтобы переиспользовать
>>> соединение за счёт keepalive и не открывать новое соединение на каждый
>>> запрос от приложения).
>>> Возникла ситуация, когда целевой хост стал отвечать 301 редиректом,
>>> естественно приложение, получив вместо ожидаемого контента, 301 редирект
>>> сломалось.
>>> Есть ли способ заставить Nginx обработать редирект самостоятельно и
>>> отдать приложению готовый контент?
>>> --
>>> С уважением,
>>> Александр Карабанов
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru@nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
>
> --
> С уважением,
> Александр Карабанов
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Как обработать редирект и проксировать результат приложению?

Александр Карабанов June 26, 2020 08:42AM

Re: Как обработать редирект и проксировать результат приложению?

Илья Шипицин June 26, 2020 08:58AM

Re: Как обработать редирект и проксировать результат приложению?

Александр Карабанов June 29, 2020 03:04AM

Re: Как обработать редирект и проксировать результат приложению?

Илья Шипицин June 29, 2020 03:50AM

Re: Как обработать редирект и проксировать результат приложению?

Александр Карабанов June 29, 2020 05:40PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
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