Nginx 可通过多种方式实现 http 跳转 https,以下列出各种方式的实现方法。
1、return 301
这是 Nginx 新版本的写法,推荐使用。在 Nginx 80 监听服务上加一行:### 我的其他文章
return 301 https://$server_name$request_uri; #http跳转https
完整配置如下:
#管理端
server {
listen 10003;
server_name localhost;
try_files $uri $uri/ /index.html;
root /home/source/shop/manager/dist;
}
#管理端转发
server {
listen 80;
server_name admin-xxxxx.xxx.xxx;
return 301 https://$server_name$request_uri; #http跳转https
}
#管理端https
server {
listen 443 ssl;
server_name admin-xxxxx.xxx.xxx;
ssl_certificate ../cert/server.crt;
ssl_certificate_key ../cert/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:10003;
}
}
2、rewrite
Nginx 老版本的写法,不推荐使用。将 “#http跳转https” 这行修改为:
rewrite ^(.*)$ https://admin-xxxxx.xxx.xxx permanent;
或
rewrite ^(.*)$ https://$host$1 permanent;
3、497 状态码
将 “#http跳转https” 这行修改为:
error_page 497 https://$host$uri?$args;
4、meta 刷新
写一个 index.html,内容是 http 向 https 跳转:
index.html
<html>
<meta http-equiv=”refresh” content=”0; url=https://admin-xxxxx.xxx.xxx/”>
</html>
再修改 Nginx 配置文件,将 “#http跳转https” 这行修改为:
error_page 404 https://admin-xxxxx.xxx.xxx
作者开源
顺便说一下,国内又一款开源软件Wall,搭建特别简单,可以搭建个人照片墙和视频墙,有兴趣可以看下教程:https://blog.csdn.net/u014641168/article/details/129396364
GitHub地址:https://github.com/zhang-tong-yao/wall
我的网站
自己做的小商城,感兴趣可以相互讨论技术呀!