IlyaEvseev
@IlyaEvseev
Opensource geek

Умеет ли Nginx брать порт для proxy_pass из запроса?

Nginx работает как обычный прокси. Получает запросы следующего вида:
GET http://example.org/page.html

/etc/nginx/conf.d/proxy.conf:
server {
        listen 3128;
        resolver 8.8.8.8;
        server_name _;
        location / {
                proxy_pass $scheme://$host$uri;
        }
}

Проблема в том, что запрос может содержать нестандартный порт (например, GET example.org:81/page.html), а Nginx всё равно отправит его на порт 80.
Если написать "proxy_pass $request;", то Nginx на любые запросы (с портом или без) начинает ругаться в логи:
invalid URL prefix in "GET http://example.org/page.html HTTP/1.1"

Можно ли научить Nginx подключаться на порт, указанный в запросе?
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 ₽
NO ONE Москва
от 150 000 до 180 000 ₽
LOFT Москва
от 80 000 до 120 000 ₽
26 мая 2020, в 02:01
4500 руб./за проект
26 мая 2020, в 00:42
10000 руб./за проект
25 мая 2020, в 22:16
3000 руб./за проект