Всем доброго времени суток.
Задача: настроить фронтом 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