如果您的网站安装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

