在这篇文章中,我们将研究如何在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版本:
- server {
- listen 80 default_server;
- server_name _;
- return 301 https://$host$request_uri;
- }
下面,我们详细说明每个上述术语:
- Listen 80 default_server – 这将指示您的系统捕获端口80上的所有HTTP通信
- Server_name _ – 在接到请求后的匹配顺序
- Return 301 https://$host$request_uri – 这告诉您的搜索引擎将其永久重定向。它指定变量$host 保存域名。
更改配置设置后,需要在系统上重新加载Nginx服务。因此,使用以下命令重新加载Nginx服务:
- $ sudo systemctl reload nginx
在Nginx中将指定域名的HTTP重定向到HTTPS
在您的域上安装SSL证书之后,您将有两个用于此域名的服务器块选项。一个块用于监听端口80的HTTP版本,第二个版本用于监听端口443的HTTPS。然而,要将一个网站域名从HTTP重定向到HTTPS,你需要打开Nginx配置。您可以在/etc/nginx/sites-available目录中找到这个配置文件。如果你没有找到这个文件,你可以搜索它/etc/nginx/nginx./usr/local/nginx/conf或/usr/local/etc/nginx,然后在这个文件中执行以下更改:
- server {
- listen 80;
- server_name linuxmi.com www.linuxmi.com;
- return 301 https://linuxmi.com$request_uri;
- }
让我们逐行了解上面的代码。