Welcome! Log In Create A New Profile

Advanced

Re: 421 Misdirected Request via pass_proxy

Maxim Dounin
November 26, 2023 10:56PM
Hello!

On Sun, Nov 26, 2023 at 10:34:34AM +0300, Eugene Prokopiev wrote:

> Здравствуйте!
>
> Не получается спроксировать repo.clojars.org:
>
> location /clojars {
> proxy_pass https://repo.clojars.org;
> }
>
> curl -v http://localhost/clojars/
> ...
> < HTTP/1.1 421 Misdirected Request
> ...
> <
> Requested host does not match any Subject Alternative Names (SANs) on
> TLS certificate
> [f38588ca7dc3f37ec048583198230295986084302bfd4d5c2d944911bd377a95] in
> use with this connection.
>
> Visit https://docs.fastly.com/en/guides/common-400-errors#error-421-misdirected-request
> for more information.
> * Connection #0 to host localhost left intact
>
> Нагуглил в этой же рассылке волшебную директиву proxy_ssl_server_name
> on - но получается совсем странная вещь - на localhost/clojars/ мне
> уже отдают 200, но в теле совсем не тот html, что на оригинальном
> repo.clojars.org
>
> Как это может быть и чего еще может не хватать?

У вас в конфиге написано:

proxy_pass https://repo.clojars.org;

То есть проксирование без изменения URI (note: после имени хоста в
proxy_pass ничего нет). Соответственно запрос к
http://localhost/clojars/ будет возвращать то, что в норме
возвращают по адресу https://repo.clojars.org/clojars/.

Вероятно, вы вместо этого хотели получить то, что в корне
repo.clojars.org. Правильная конфигурация для этого будет
какая-то такая:

location /clojars/ {
proxy_pass https://repo.clojars.org/;
proxy_ssl_server_name on;
}

То есть:

- proxy_ssl_server_name, так как Fastly, судя по всему, всегда
хочет SNI, в то время как nginx по умолчанию SNI не посылает
(см. http://nginx.org/r/proxy_ssl_server_name/ru);

- "location /clojars/" (note: "/" в конце), чтобы в него не
попадали запросы вроде /clojars-foobar, а только запросы к
/clojars/<что-то> (а запросы к /clojars перенаправлялись на
/clojars/, подробнее см. http://nginx.org/r/location/ru);

- и "proxy_pass https://repo.clojars.org/;" (note: "/" в конце),
чтобы nginx при проксировании менял URI запроса, заменяя
"/clojars/" на "/" (см. http://nginx.org/r/proxy_pass/ru).

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

421 Misdirected Request via pass_proxy

Eugene Prokopiev November 26, 2023 02:34AM

Re: 421 Misdirected Request via pass_proxy

Maxim Dounin November 26, 2023 10:56PM

Re: 421 Misdirected Request via pass_proxy

Eugene Prokopiev November 27, 2023 01:32AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

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