Nginx配置http跳转https

目录

  • 一、return 301
  • 二、rewrite
  • 三、497 状态码
  • 四、meta 刷新


Nginx 可通过多种方式实现 http 跳转 https,以下列出各种方式的实现方法。

一、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;
     }
}

二、rewrite

Nginx 老版本的写法,不推荐使用。将 “#http跳转https” 这行修改为:

rewrite ^(.*)$  https://admin-xxxxx.xxx.xxx permanent;

rewrite ^(.*)$  https://$host$1 permanent;

三、497 状态码

将 “#http跳转https” 这行修改为:

error_page 497  https://$host$uri?$args;

四、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

你可能感兴趣的:(高效运维,工具使用,nginx,https,http)