要让Nginx强制将HTTP请求跳转到HTTPS,有以下几种常用方法:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
# SSL配置和其他设置...
}
server {
listen 80;
server_name example.com www.example.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
在HTTPS服务器块中添加HSTS头,让浏览器记住只使用HTTPS:
server {
listen 443 ssl;
server_name example.com www.example.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# SSL配置和其他设置...
}
server {
listen 80;
server_name example.com www.example.com;
if ($scheme != "https") {
return 301 https://$server_name$request_uri;
}
}
nginx -s reload
选择哪种方法取决于你的具体需求,通常方法1是最简单直接的方式。