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

将HTTP重定向到HTTPS(中间件重定向vs Nginx)

姜志行
2023-03-14

我想问一下HTTP到HTTPS的重定向。正如我们所知,WWW到无WWW重定向是通过从web服务器端重定向来实现的。但是,当涉及到https重定向时,它可以通过两种方式完成,服务器端(Nginx等…)和应用程序端(中间件)。我想知道:

  1. 以下哪种方法有效且性能更好。
  2. 考虑到同一服务器上的多个顶级域和子域域,每种方法的优缺点

非常感谢。

参考:

  1. 将Laravel中的WWW重定向到非WWW-堆栈溢出

共有1个答案

吴欣然
2023-03-14

这里基于服务器的重定向应该更有效,因为它发生在加载任何应用程序代码之前。

就我个人而言,我总是在所有站点的nginx服务器{}块中这样做。我为一个域创建了一个conf文件,有两个服务器{}块,一个主块监听443的HTTPS流量,一个小块只识别(子)域并重定向到HTTPS协议。

下面是我针对特定子域的重定向服务器{}块示例:

server {
    server_tokens off;
    listen 80;
    server_name sub.domain.com;
    return 301 https://sub.domain.com$request_uri;
}

至于基于服务器的利弊,我要说的明显的是:

  • 性能
  • 需要root访问权限(至少对于nginx,Apache您可以在.htaccess文件中进行访问,但这本身就有性能成本)
 类似资料:
  • 我们使用拉维5。要将http连接重定向到https,请使用中间件HttpsProtocol。 在我们的4个测试用例中,只有1个正确工作(最后一个重定向)。其他3种情况的中间件添加了url extra index.php。 http://www.aqualink.az/index.php ---

  • 问题内容: __Apache 环境中心 尝试设置从http到https的自动重定向 我尝试将以下内容添加到我的httpd.conf中,但是没有用 有任何想法吗? 问题答案: 我实际上已经遵循了这个示例,并且对我有用:) 然后做:

  • 奇怪的问题。我使用FullCalendar向服务器上的endpoint发起ajax请求。终点是: 请注意,它是显式的HTTPS。但是,当我发起一个请求时(即当Fullcalendar发起一个请求时),我会得到一个301和一个到非HTTPSendpoint的重定向: 因为页面是通过HTTPS加载的,所以失败。 endpoint工作正常--当我将它加载到浏览器中时,我会得到预期的json输出(通过ht

  • 问题内容: 我如何在Spring Webflux中配置http-> https重定向?我需要将所有请求重定向到(据我所知,任何请求都应具有http状态响应,并带有更改http-> https)。在文档中未找到有关此信息的任何信息。我找到了这个答案,但它与tomcat有关。我有净值。 问题答案: 我找到了方法,希望对您有所帮助:

  • 如何在spring WebFlux中配置HTTP->HTTPS重定向?我需要将所有请求重定向到(根据我的理解,任何请求都应该具有http状态响应,并更改HTTP->HTTPS)。在文档中没有找到任何关于它的信息。我找到了这个答案,但它与Tomcat有关。我有奈蒂。

  • 重定向到 不执行。谁面临过类似的问题?