Nginx反向代理配置,可通过https

时间:2019-09-26 17:23:23

标签: docker nginx

我正在尝试添加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

任何对此的帮助将不胜感激!

0 个答案:

没有答案