首页 文章

使用https在nginx后面的spring boot应用程序

提问于
浏览
0

我有两个泊坞容器:

  • 一个容器运行我的Spring引导应用程序,该应用程序侦听端口8080:此容器将8080端口暴露给其他docker容器 . docker网络中的容器ip为172.17.0.2 .

  • 另一个容器运行nginx,它发布端口80 .

我可以在我的nginx容器中使用以下conf成功将我的spring boot应用程序放在nginx后面:

server {

server_name <my-ip>;

listen 80;

location / {
    proxy_pass http://172.17.0.2:8080/;
}

}

对我的REST API(http://my-ip/context-url)执行GET请求可以正常工作 .

我现在正在尝试使用https将我的应用程序置于nginx之后 . 我的nginx conf如下:

server {

    server_name <my-ip>;

    listen 80;

    return 301 https://$server_name$request_uri;

}

server {

   server_name <my-ip>;

   listen 443;

   ssl on;
   ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
   ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

   location / {
        proxy_pass http://172.17.0.2:8080/;
    }
}

但是我现在无法通过http或https访问我的应用程序 . http重定向到https,结果为ERR_CONNECTION_REFUSED

1 回答

  • 0

    问题是我在运行nginx容器时没有发布443端口,只有端口80.nginx配置是正确的 .

相关问题