电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2451 人浏览分享

Nginx如何将HTTP重定向到HTTPS

[复制链接]
2451 0
本帖最后由 zhaorong 于 2020-12-2 16:10 编辑

Nginx 发音为Engine x是一个免费 开源 基于Linux的高性能Web和反向代理服务器 负责管理和处理互联网上最大的网
站流量的负载。Nginx是一个强大的重定向工具 可以轻松配置在您的系统上重定向不安全或未加密的HTTP网络流量到
加密和安全的HTTPS网络服务器。如果你是一个系统管理员或开发人员那么你应该经常使用Nginx服务器。

QQ截图20201120170110.png

在这篇文章中 我们将研究如何在Nginx中将Web流量从HTTP重定向到安全的HTTPS。HTTP消息头以明
文的字符串格式传送 而HTTPS使用SSL/TLS对客户机和服务器系统之间的通信进行加密。因此 由于许多
原因HTTPS应该替代HTTP:

客户端-服务器之间双向的所有数据均已加密。但是,如果被拦截 任何人都无法访问敏感信息。
当您使用HTTPS时 Google Chrome和其他浏览器会认为您的网站域是安全的。
HTTPS版本使用HTTP/2协议改善了您指定的网站性能。
如果您通过HTTPS为您的网站域提供服务 则该网站将在Google上排名更高 因为它偏爱所有受HTTPS保护的网站。
对于每个站点版本 最好在单独的服务器块中将Nginx中的流量HTTP重定向到HTTPS。还建议避免使用  if
方向重定向流量 这可能会导致服务器异常行为。

将所有流量从HTTP重定向到HTTPS

将以下更改添加到Nginx配置文件中 以便将所有流量从HTTP重定向到HTTPS版本:
  1. server {
  2.     listen 80 default_server;
  3.     server_name _;
  4.     return 301 https://$host$request_uri;
  5. }
复制代码

下面 我们详细说明每个上述术语:

Listen 80 default_server - 这将指示您的系统捕获端口80上的所有HTTP通信
Server_name _ - 在接到请求后的匹配顺序
Return 301 https://$host$request_uri - 这告诉您的搜索引擎将其永久重定向。它指定变量$host 保存域名。

更改配置设置后 需要在系统上重新加载Nginx服务。因此 使用以下命令重新加载Nginx服务:
  1. $ sudo systemctl reload nginx
复制代码

在Nginx中将指定域名的HTTP重定向到HTTPS

在您的域上安装SSL证书之后 您将有两个用于此域名的服务器块选项。一个块用于监听端口80的HTTP版本 第二个版本用于
监听端口443的HTTPS。然而 要将一个网站域名从HTTP重定向到HTTPS 你需要打开Nginx配置。您可以在/etc/nginx/sit
es-available目录中找到这个配置文件。如果你没有找到这个文件 你可以搜索它/etc/nginx/nginx./usr/local/nginx/conf
或/usr/local/etc/nginx,然后在这个文件中执行以下更改:
  1. server {
  2.     listen 80;
  3.     server_name linuxmi.com www.linuxmi.com;
  4.     return 301 https://linuxmi.com$request_uri;
  5. }
复制代码

让我们逐行了解上面的代码。

Listen 80 - 使用端口80 服务器将侦听指定域名的所有传入连接。
Server_name linuxmi.com www.linuxmi.com - 它指定域名。因此 将其替换为您要重定向的网站域名。
Return 301 https://linuxmi.com$request_uri - 将流量移至该站点的HTTPS版本。
$request_uri变量用于完整的原始请求URI 其中也包含参数。

使用以下方法 您可以将流量重定向到HTTPS www版本到站点的非www版本。对于非www和www
版本建议在单独的服务器块中创建重定向。让我们用一个例子来解释。如果要将www HTTPS请求
重定向到非www版本,则应遵循以下配置:
  1. server {
  2.     listen 80;
  3.     server_name linuxmi.com www.linuxmi.com;
  4.     return 301 https://linuxmi.com$request_uri;
  5. }
  6. server {
  7.     listen 443 ssl http2;
  8.     server_name www.linuxmi.com;
  9.     # . . . other code
  10.     return 301 https://linuxmi.com$request_uri;
  11. }
  12. server {
  13.     listen 443 ssl http2;
  14.     server_name linuxmi.com;

  15.     # . . . other code
  16. }
复制代码

用您的域名替换域名例如www.linuxmi.com。

总结

我们已经讨论了如何将流量从HTTP版本重定向到Nginx服务器上的HTTPS。通过改变Nginx
配置文件设置您可以轻松地将指定域名或全部重定向到HTTPS 我们在本文中提到的这种方法
可以通过改变用户体验 使您的网站更安全。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.