我正在尝试添加HTTPS支持,并在Docker堆栈上更轻松地进行访问以用于将来的部署。
这是我目前拥有的:
所有这些都被管理到 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来访问Web应用程序和Swagger UI,但是从Web应用程序对API的每次调用都超时。
我原本希望看到对API的调用也通过端口5001“重定向”,但是它不起作用,我也找不到原因,根本没有通过。
在本地使用 curl 会得到以下结果:
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:5001
任何对此的帮助将不胜感激!