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

使用tomcat服务器和aws负载均衡器将超文本传输协议请求重定向到https

陶鹏
2023-03-14

我已经设置了一个ec2实例,其中一个java web应用程序运行在tomcat服务器上,另一个aws应用程序负载平衡器将端口80和443定向到ec2实例上的端口8080。

我已更改服务器。tomcat上的xml配置如下

<Connector port="8080" protocol="HTTP/1.1"
proxyPort="443"
proxyName="sub.mydomain.com"
scheme="https"
secure="true"
connectionTimeout="20000"
redirectPort="8443" />

现在我可以连接到“sub.mydomain.com”和“https://sub.mydomain.com”。但是如何将所有“http://sub.mydomain.com”请求重定向到“https://sub.mydomain.com”?

共有1个答案

薛欣德
2023-03-14

把这个加到你的web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTPSOnly</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
 类似资料:
  • 名为charles的工具中有一个功能,允许您映射远程请求: http://www.charlesproxy.com/documentation/tools/map-remote/ 基本上,它可以将任何请求发送到服务器(即使不是运行它的人),然后向另一台服务器发出新请求,保留路径和查询字符串。然后,来自第二台服务器的响应将覆盖来自第一台服务器的响应。 我只是想知道是否有一个节点模块可以做到这一点。我

  • 问题是,我还想将HTTP访问重定向到HTTPS,然后我试图添加一个规则将80重定向到443,因此它将落入第一个规则(443到8080)并使用证书,但它不起作用。在网上研究,我发现我应该在我的。htacess文件中添加一些行,但也不起作用。我认为这不是我的解决方案,因为所有HTTPS的东西都在AWS端,有没有一种方法可以只通过AWS将HTTP重定向到HTTPS而不改变服务器?

  • 使用AWS,我想: 通过多个不同的IP发送http请求 不使用代理发送此请求 使用弹性负载平衡器和自动校准组发送 将这些请求从一个实例发送到自动缩放组中的多个实例 这几个实例中的每一个都将不同的IP分配给传入的请求,以便在其IP中输出请求 我该怎么做?是否需要设置负载平衡器,以便通过http请求发送?我希望每个http请求都有不同的IP地址。

  • httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。 通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行. 语法 httpd [ -d serverroot ]

  • 我想做一些类似的事情:创建AWS应用程序负载平衡器规则,该规则修剪请求的前缀,而不使用额外的反向代理,如nginx、httpd 使用AWS负载平衡器,将流量从URL(例如)重定向到条形图(如下所示): 但是只有GET请求被正确路由,POST、PUT等被路由为GET,所以我收到一个错误,因为我的控制器没有这些GET方法。 有没有办法用AWS负载平衡器做到这一点? 我联系的问题是2016年的,所以我希

  • 我正在尝试学习负载平衡和服务器是如何工作的(既有云服务器,也有常规池服务器)。根据我的理解,负载均衡器将用户的请求重定向到压力/连接量最少的服务器,这样无论有多少用户在发出相同的请求,网页都可能快速加载。我感到困惑的部分是每个服务器所做的任务。从我在网上看到的图和诸如此类的东西来看,似乎有多个服务器执行不同的任务,例如发送视图文件(html)、发送静态内容或数据库服务器(MySQL)。但我也听说这