tomcat - AWS Application Load Balancer 443 后面的 tomcat 8080
问题描述
我的目标是 443 (ALB)->8080 (TOMCAT)
我在 8080 上运行 EC2 tomcat 实例。
这是8080上的tomcat apr连接器
<Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
port="8080" scheme="http"
/>
我有一个带有证书的 ALB 在 443 上侦听,并设置为传递给目标组 8080。
所以这个想法是https://www.website.com/myapp -> www.mywebsite.com:8080/myapp
我知道我的应用程序运行良好,因为如果我开放对 8080 的公共访问,我可以完全运行该应用程序。
我有一些配置错误,因为当我访问该站点时 https://www.website.com/myapp
我似乎被重定向到:www.website.com/myapp
似乎我可以很好地访问 tomcat,但是当它响应时它会将我重定向回 http。我究竟做错了什么?
谢谢!
解决方案
Spring Boot 应用程序使用 tomcat 服务器在 8080 上运行。其他应用程序/服务器(如 apache2)在 80 端口上运行。理想情况下,ALB 应该指向 80 端口,您应该在 80 处设置一个代理,将您的请求委托给 tomcat(端口:8080)
这就是请求的流动方式:
- 接受来自浏览器的 443 请求
- AWS ALB 捕获具有隐蔽的侦听器/目标组的请求(443 到 80)
- 现在,像 apache2 这样的代理服务器应该将在 80 收到的请求转发到 8080
所以你错过了相当容易的第三步。您可以阅读https://stackoverflow.com/a/33704078/1074100进行配置。
更不用说,您的域应该指向 ALB。这可以在 Route53 中完成。这有助于 ALB 接收浏览器发出的请求。基本上第一步工作。
推荐阅读
- powershell - PowerShell 可以给关键字起别名吗?
- oracle - 在oracle存储过程中将数据插入到多个表中
- java - 如何在 JdbcTemplate 中创建 mySQL 存储过程
- validation - 如何在每个用户的数据库中保持设计文档同步
- ionic4 - Razorpay 与 Ionic 4 的集成出现错误请求错误
- wpf - .Net Core 3.0 hostfxr.dll 找不到
- c++ - 使用 poco ODBC 将波斯字符串插入 sql server 时显示错误字符
- javascript - addeventlistener 甚至多次触发
- c# - c# 压缩多个文件并下载 - 无法在 Windows 资源管理器中打开文件
- c# - 使用 ref locals/returns 在数组中存储对对象字段的引用