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 подключаться на порт, указанный в запросе?
  • Вопрос задан
  • 367 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы