依剑听雨 发表于 2015-12-9 02:59:43

利用meta实现http到https的强制跳转 (省服务器资源)

不论是利用nginx伪静态重写,还是利用nginx497 都会相当耗费服务器资源。

下面讲述一种相对省服务器资源的方式:

1.首先建立一个index.html (由于主机拦截,代码只能贴成图片,你可查看 http://zuohuadong.lofter.com/post/24231d_931e51a)http://i12.tietuku.com/4acec22284f5da59.png

2.若网站目录为 /home/wwwroot/www.ibenchu.com在网站目录下新建 meta目录 将index.html放进去

3.配置nginx主机conf (一般在/usr/local/nginx/conf/vhost)server
    {
      listen 80;
                server_name www.ibenchu.com;
                location / {
                #index.html放在虚拟主机监听的根目录下
      root /home/wwwroot/www.ibenchu.com/meta;
    }
      #将404的页面重定向到https的首页
    error_page404 https://www.ibenchu.com/;
      }
server
    {
                listen 443 ssl http2;
      #listen [::]:443 ssl http2;
                ssl_certificate /etc/letsencrypt/live/www.ibenchu.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/www.ibenchu.com/privkey.pem;
      #listen [::]:80;
      server_name www.ibenchu.com;
      index index.html index.htm index.php default.html default.htm default.php;
      root/home/wwwroot/www.ibenchu.com;

      include dayin.conf;
      #error_page   404   /404.html;
      include enable-php.conf;

      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
      {
            expires      30d;
      }

      location ~ .*\.(js|css)?$
      {
            expires      12h;
      }

      access_log off;
    }改掉www.ibenchu.com即可,伪静态 修改 dayin.conf

以上配置文件需要根据具体情况酌情修改
如果主机不支持https 或者 不支持 http2 请看:https://bbs.vpser.net/thread-13009-1-1.html

此方法占用服务器资源少,问题在于 访问 http://xxx.com/sss 时 会被直接跳转到 https://xxx.com

[ 本帖最后由 依剑听雨 于 2015-12-9 03:31 编辑 ]

licess 发表于 2015-12-9 10:19:11

用这个还不如直接用HSTS吧

依剑听雨 发表于 2015-12-9 13:06:15

回复 2# 的帖子

HSTS 只能chrome浏览器 用户端进行设置么?

licess 发表于 2015-12-9 16:39:27

回复 3# 的帖子

HSTS是强制的不需要用户设置,只是服务器端需要加Strict-Transport-Security字段

https://www.vpser.net/build/letsencrypt-free-ssl.html 里有说明

ie11以上支持,chrome、firefox、safari等主流版本早已经支持
页: [1]
查看完整版本: 利用meta实现http到https的强制跳转 (省服务器资源)