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

HTTP重定向到带有负载平衡器的HTTPS AWS EC2

韦熙云
2023-03-14

以下是我的设置:

EC2与Apache使用弹性负载均衡器。

我希望所有超文本传输协议流量都自动重定向到https。我找到了这个reco,并通过添加到我的httpd.conf文件中来尝试:

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>

然而,这在我重新启动服务器之前或之后都不起作用。HTTP没有重定向,我的站点抛出了各种错误,直到我从配置中删除了该规则。

我认为我更新文件错误或负载均衡器设置不正确。对于负载均衡器的侦听器,我有LB协议HTTP,端口80,实例协议HTTP和实例端口80。我在端口443上有LB协议HTTPS,实例端口443。我的SSL在后一种协议上。

你知道从这里往哪里走吗?

共有1个答案

微生青青
2023-03-14

您提到的配置应该运行良好。问题可能是mod_rewrite模块未加载。将以下行添加到您的apache配置以加载重写模块。

LoadModule rewrite_module modules/mod_rewrite.so

您可以尝试下面的配置,这比您正在使用的配置要简单得多。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 类似资料:
  • 这意味着Zookeeper将负载均衡器理解为一个客户机,并与之建立联系。但是负载均衡器只是ping TCP2181就出来了。

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

  • web-service预期会有很多调用,而我希望在出现故障时使该服务成为冗余,因此我希望有两个实例同时运行以处理所有请求。 1)让两个级别的Web服务同时处理请求的最佳方法是什么?使用外部负载均衡器还是使用AKKA/AKKA-HTTP中的某种魔法(我不知道)? 2)我必须调整哪些主要参数来提高性能?

  • 我在GKE上有两个kubernetes集群:一个是处理与外部世界交互的公共集群,另一个是仅供内部使用的私有集群。 公共集群需要访问私有集群上的一些服务,我已经通过内部负载平衡器向公共集群的pod公开了这些服务。目前,我正在为负载平衡器指定要使用的内部IP地址,并将这些IP传递给公共POD,但我更希望负载平衡器可以选择任何可用的内部IP地址,并且我可以将其DNS名称传递给公共POD。 内部负载均衡器

  • 我正在使用Elastic Beanstalk部署Spring Boot web服务器,运行在应用程序负载平衡器(Elastic load balancer)后面。业务规则是,只能通过HTTPS联系此web服务器。因此,任何HTTP请求都必须首先转发到HTTPS。 基于这篇来自Amazon的文章,我应该简单地检查由负载平衡器设置的和头文件。这些标头包含有关客户端向负载平衡器发出的原始请求的信息。 所

  • 在花了几个小时阅读Http客户机文档和源代码后,我决定在这里寻求帮助。 我有一个使用循环算法的负载均衡服务器