繁体   English   中英

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

[英]Redirect HTTP to HTTPS (Middleware redirect vs Nginx)

我想问一下HTTP-to-HTTPS重定向。 正如我们所知, WWW-to-none-WWW重定向是通过从 Web 服务器端重定向来发生的。 但是当涉及到 https 重定向时,它可以通过服务器端( Nginx etc... )和应用程序端( Middleware )两种方式来完成。 我想知道:

  1. 哪种方式有效且性能更高。
  2. 考虑同一服务器上的多个top-level域和sub-domain域的每种方式的优缺点。

谢谢你。

参考:

  1. 在 Laravel 中将 WWW 重定向到非 WWW - 堆栈溢出
  2. 在 Laravel 中将 HTTP 重定向到 HTTPS - 堆栈溢出
  3. nginx 上对 HTTPS 的 HTTP 请求 - nixCraft

此处基于服务器的重定向应该具有更高的性能,因为它发生在加载任何应用程序代码之前。

就我个人而言,我总是在所有站点的 nginx server{} 块中执行此操作。 我为域创建了一个 conf 文件,并有 2 个服务器块,一个主要用于侦听 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 文件中执行此操作,但这本身具有性能成本)
  • 不能如此轻松地动态改变事物(灵活性?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM