连接被拒绝:Docker容器中的Nginx HTTPS反向代理

gan*_*ila 2 https proxy reverse-proxy nginx docker

我想https在ubuntu / centos的Docker容器上使用Nginx 设置反向代理。在浏览器方面,我遇到了connection refused错误。而且,我在/var/log/nginx/access.log或下看不到任何东西/var/log/nginx/error.log

我能够http再次在Docker容器上使用Nginx 设置反向代理。并且,还可以https在普通的ubuntu和centos虚拟机上使用Nginx进行反向代理。

能理解为什么httpsdocker容器上的nginx反向代理无法从浏览器连接的原因吗?

如果需要任何其他信息,我可以为您提供。提前致谢。

作为参考,请检查此sites-available/default文件。

    server {
      listen 80;
      server_name localhost;
      return 301 https://$host$request_uri;
    }

    server {
      listen 443 ssl;
      server_name localhost;

      ssl_certificate /etc/nginx/ssl/cert.pem;
      ssl_certificate_key /etc/nginx/ssl/cert.key;

      ssl on;
      ssl_session_cache  builtin:1000  shared:SSL:10m;
      ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
      ssl_prefer_server_ciphers on;

      location ~* /rabbitmq/(.*) {
        rewrite ^\/rabbitmq\/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:15672;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect http:// https://;
      }

      location ~* /api/(.*) {
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect http:// https://;
      }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢,Ganesh

gan*_*ila 7

看起来,我需要公开HTTP和HTTPS端口,因为nginx反向代理配置为仅服务器HTTPS流量。

docker run -d -p 80:80 -p 443:443 nginx-container
Run Code Online (Sandbox Code Playgroud)

当我开始公开HTTPS端口时,它就起作用了。