@s_pyanov

Nginx маршрутизация для squid, как настроить?

Всем доброго времени суток.
Задача: настроить фронтом nginx который в зависимости от server_name перенаправляет tcp пакеты на определенный squid контейнер докера который ретранслирует таффик далее.

Т.е. есть домены 3-го уровня
fr.example.com
gd.example.com
nl.example.com

В бразуере в настройках прокси указывается один из доменов и трафик идет сначало на nginx, потом nginx в зависимости от домена третьего уровня перенаправляет трафик на один из ОПРЕДЕЛЕННЫХ squid портов.

fr.example.com --> localhost:7000
gd.example.com --> localhost:7001
nl.example.com --> localhost:7002
...

если прописываю в /etc/nginx/nginx.conf

stream {
  upstream fr {
    server localhost:7000;
  }
  server {
    listen 8081;
    proxy_pass fr8081;
    proxy_responses 1;
  }
}

то работает на основе порта 8081 соотвественно, указать в данном блоке server_name нельзя.

если прописываю в /etc/nginx/sites-enabled/config.config
upstream fr {
    server 127.0.0.1:3128;
}

server {
    listen 8080;
    server_name fr.example.com;

    location / {
       proxy_read_timeout 1800;
       proxy_connect_timeout 1800;
       proxy_send_timeout 1800;
       send_timeout 1800;
       proxy_set_header        Accept-Encoding   "";
       proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
       proxy_set_header        X-Forwarded-For   $remote_addr;
       proxy_set_header        X-Forwarded-Proto $scheme;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_pass http://fr;
    }
}

то в логах получаешь
"CONNECT www.google.com:443 HTTP/1.1" 400 166 "-" "-"

как можно решить проблему?
os: ubuntu 20.04
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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