Задать вопрос

Nginx как фронтенд другого прокси

Всем привет.

Требуется поставить цепочку прокси. Ну скажем, Internet -> Nginx -> Squid

Не спрашивайте зачем =)

Беда в том, что когда я в nginx объявляю

location / {
  proxy_pass http://squid:3128;
  proxy_set_header Host $http_host;
}


То Nginx обращается к Squid'у не как к прокси-серверу, а как к веб-серверу:

GET / HTTP/1.1
Host: mysqhostname.com


Соответственно, Squid отвечает HTTP 404 «WTF?!»

Чтобы Squid понимал Nginx, нужно чтобы последний делал такой запрос:

GET http://mysqhostname.com/ HTTP/1.1
Host: mysqhostname.com

Вопрос: как сконфигурировать Nginx, чтобы он посылал именно такой запрос?
  • Вопрос задан
  • 3613 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
snp
@snp
Проще squid настроить, чтобы «Host» понимал:

http_port 3128 vhost
Ответ написан
@Hint
Вы уверены, что в GET должен быть указан протокол http и домен? Никогда с подобным не сталкивался. Домен указан в host (как и требуется), а протокол указан в строке GET. По-моему дело в чем-то другом.
Ответ написан
VBart
@VBart
Никак. Он не предназначен для работы с форвард-прокси. Вам нужно переключить squid в реверсивый режим, если хотите их подружить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы