当前位置: 首页 > 知识库问答 >
问题:

ngin x背后带有https的Spring Boot应用程序

邓毅
2023-03-14

我有两个docker容器:

  1. 一个容器运行我的Spring Boot应用程序,它侦听端口8080:这个容器将8080端口暴露给其他docker容器。docker网络中的容器ip为172.17.0.2。
  2. 另一个容器运行发布端口80的nginx

我可以成功地将我的spring boot应用程序放在nginx之后,在我的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将我的应用程序放在ngin x后面。我的ngin x 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个答案

姚正真
2023-03-14

问题是我在运行nginx容器时没有发布443端口,只发布了80端口。

 类似资料:
  • 我想在代理之后提供Restful API,但我不知道如何将请求重定向到Spring Boot应用程序,以便可以使用域名访问它。 我的Spring Boot应用程序使用spring-boot-starter-tomcat运行,应用程序部署良好,我可以在服务器上使用java-jar myApplication.jar部署它。 该应用程序还可以通过写入远程访问https://1.2.3.4:8090在浏

  • 我想启用或禁用具有外部配置的SSL/TLS,这些配置可以在应用程序启动期间提供。应用程序应该支持http和HTTPS的所有crud操作。 既然上面的属性是不推荐使用的,那么我如何在不使用配置文件的情况下实现它。

  • 我在关注堆栈问题如何设置lets加密SSL证书并在Spring Boot应用程序中使用它?将我的Springboot应用程序配置为使用https(certbot),但我的Nginx没有正确重定向到我的应用程序。 更多内容:我正在使用Cloudflare重定向www.example。com(我的域)向我拥有Nginx和Springboot应用程序的计算机发出请求。我希望Nginx将端口80上的htt

  • 我有两个Docker容器,spring boot和Angular。 此外,我在Ubuntu中安装了Nginx。 我有这个conf文件Nginx来使用HTTPS重定向Angular应用程序 我的angular容器使用端口8080:80运行(docker文件很简单), Springboot容器使用端口8181:8181运行当我用https://xx.xx.xx.xx:8181更改Angular中的环境

  • 我有一个Spring-boot web应用程序,它使用https://samltest.id/提供的SAML身份验证。 它在localhost上工作得很好,但现在我试图将它放在有nginx的服务器上。Ngnix的配置使得任何http请求都被重定向到https,并且https://myserver.company.com/myapp/被发送到http://local_ip:local_port/。

  • 问题内容: 有没有一种方法可以捕获屏幕,但不会显示应用程序本身。我知道如何最小化框架或使框架不可见,但这必须要做到真正的快速cos,因为它每秒会发生很多次(至少每秒发生一次)。我希望它看起来像Windows Vista / 7中的放大镜。(该应用可以看到自己的背后。) 问题答案: 如果不与相关平台的窗口管理器进行紧密的本机集成,则在Java中这是不可能的。