Я пытаюсь добавить поддержку HTTPS и упростить доступ к стеку докеров для будущего развертывания.
Вот что у меня сейчас есть:
все это управляется в docker-compose .
сейчас, что мне нужно получить, это:
Из того, что я прочитал и понял, мне нужен еще один контейнер с nginx, действующим в качестве обратного прокси-сервера для достижения этой цели и обработки части HTTPS, поэтому я пошелс этим.Я довольно новичок в Docker и совершенно новичок в nginx, поэтому я не уверен, как правильно и правильно построить эту конфигурацию.
Вот что я сделал до сих пор:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
server_name localhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_pass_request_headers on;
location / {
proxy_pass http://front_end:4200;
}
location /api {
proxy_pass http://web_api:5001;
}
listen 443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5;
ssl_certificate /etc/ssl/private/localhost.crt;
ssl_certificate_key /etc/ssl/private/localhost.key;
}
}
И в результате я действительно могу получить доступ к своему веб-приложению и Swagger UI таким образом, используя API через Swagger UI, однако каждый вызов API из веб-приложения истекает.
Я быложидая увидеть, что вызовы API проходят через порт «перенаправления» 5001, но он не работает, и я не могу понять, почему он вообще не проходит.
Использование curl локально дает такой результат:
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:5001
Любая помощь с этим будет принята с благодарностью!