如何配置Nginx将所有流量从http导向到https

如果您的网站安装NGINX并启用了SSL,则最佳做法是完全禁用HTTP,并将所有传入流量强制转到网站的HTTPS版本。这样可以避免内容重复,并确保该网站的所有用户都仅浏览您网站的安全版本。

对SEO提升有所帮助,因为搜索引擎更喜欢安全的网页。

假设您已经在Linux系统上使用NGINX,并希望将所有HTTP导向到HTTPS。即使用户碰巧点击了http://,站点也应该将其发送到正确且受保护的页面,该页面会立即发生而无需用户干预。

我们需要对NGINX服务器配置文件进行更改,以便导向流量。

  • $ sudo vi / etc / nginx /

注:需要按不同系统,进行确认配置文件的位置

在HTTP部分下,插入以下301复位向代码。请将示例域名替换为您站点的域名。

server {

    listen 80;

    server_name example.com www.example.com;

    return 301 https://example.com$request_uri;

}

在端口80上侦听到example.com和www.example.com的传入连接。然后,将这些连接复位向到相同的URL,但使用https://。

在HTTP块下方,如果未创建HTTPS块,则需要一个HTTPS块。

server {

    listen 80;

    server_name example.com www.example.com;

    return 301 https://example.com$request_uri;

}

server {

    listen              443 ssl;

    server_name         example.com;

    ssl_certificate     example.com.crt;

    ssl_certificate_key example.com.key;

}   

所有HTTP流量,重定向到HTTPS,可以选择的方法有三种,

方法一:

HTTP重定向HTTPS
# 重定向所有HTTP流量到HTTPS
return 301 https://$server_name$request_uri;
}

方法二:

使用if语句的重定向
# 使用if条件判断
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

方法三:

针对特定路径的重定向
location / {
return 301 https://$host$request_uri;
}

当配置好你的Nginx后,需要进行测试配置

以下步骤:

检查配置文件的命令为:

sudo nginx -t

检查配置正确后,重新加载Nginx:

sudo systemctl reload nginx

测试重定向:

curl -I http://{域名}.com

返回 301 Moved Permanently 和 Location: https://{域名}.com

参考图片
参考图片

 

 

免责声明
本文内容及操作步骤仅供参考,实际效果可能因环境差异而不同。
操作存在风险,请务必谨慎验证并独立承担责任。