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 подключаться на порт, указанный в запросе?