контейнере project_db, написал такую директиву для нее:
server {
listen 443 ssl http2;
server_name db.example.com;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/cert.key;
location / {
proxy_pass http://project_db:5432;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
}
}
И по db.example.com бд недоступна, хотя контейнер project_db запущен и бд в ней работает. По network inspect вижу, что nginx и бд в одной bridge-сети.
curl project_db:5432 возвращает curl: (52) Empty reply from server, а не ошибку, что не может найти такой хост
Что я делаю неправильно?)
upd: datagrip выдает ошибку: [08P01] An error occurred while setting up the SSL connection.
А вы хотите в браузере увидеть по ссылке бд?
нет, хочу в композе передавать db.example.com вместо ip в переменные окружений контейнеров
А у вас там на 5432 база умеет по HTTP говорить?
оказалось, в этом и проблема. Ответ — нет
через nginx это всё таки можно проксировать, но по tcp прокси, вот только точно ли это нужно))), выглядит как костыль
т.е. просто не прописывать http и ssl в "listen"? Гуглю, не могу найти, как это сделать)
https://nginx.org/ru/docs/stream/ngx_stream_core_module.html
Обсуждают сегодня