http缓存及http2配置

http缓存及http2配置极大提高了网页加载得速度

1.1 nginx安装

首先是需要安装nginx 去官网下载windows版本的安装包

nginx 命令

nginx start //启动
nginx -s stop
nginx -s reload // 重新运行
tasklist /fi "imagename eq nginx.exe" //进程

 把打包好的文件copy到nginx文件得html目录下

 1.2nginx 启用gzip压缩

http {

// 其他配置

    gzip  on;

    gzip_min_length 1k; //超过1k就压缩

    gzip_comp_level 6;

    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/json; //需压缩文件得类型

    gzip_buffers 4 16k;

    gzip_vary on;

    gzip_http_version 1.1;

        server {

        }

}

配置完成后 nginx -s reload 重新启动服务

输入curl -v  http://localhost:80可查看到http得版本或者在控制台也可以

配置详情

1.3启用http keep-alive

就是对tcp链接进行复用,http1.1默认开启了,可看到其他请求未有tcp链接减少网络开销

 

 额外配置

 keepalive_timeout  65; //65s后会关闭掉
 keepalive_requests 100; //请求超过多少就关闭

 1.4启用http缓存

第二种和第三种差不多 现在主要用第三种;第二种有坑这里客服端得得时间和服务器的时间会不同

配置:

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            try_files $uri /index.html;
            if ($request_filename ~* .*\.(?:htm|html)$) // 不缓存html
                {
                   add_header Cache-Control "no-cache, must-revalidate";  
                   add_header "Pragma" "no-cache";
                   add_header "expires" "no-cache";
                }
             if ($request_filename ~* .*\.(?:js|css)$) 
                {
                    expires 7d; // 过期时间7天 根据需求可适当延长时间这不是主要的 我们在webpack上用hash做了配置的更新后也会让旧文件缓存失效
                }
            if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$) 
            {
                expires 7d;
            }
        }
 }       

1.5 service workers技术没有网络也可访问网站

每个框架都有对应的实现方式可自行查看

1.6 开启http2

http2优化点

1.多路复用 同个时刻多个请求并发成一个请求

2.服务器推送 重要的资源提前推送到客服端这些资源就不需要请求了

 

  1安装openssl 

去官网下载安装即可OpenSSL官方下载 - 码客,再配置系统环境变量

 

2 生成测试ssl证书,正式的ssl证书是需要付费的

openssl genrsa -des3 -passout pass:x -out server.pass.key 2048

openssl rsa -passin pass:x -in server.pass.key -out server.key 

openssl req -new -key server.key -out server.csr 

openssl x509 -req -sha256 -days 3650 -in server.csr -signkey server.key -out server.crt

 

配置

http {

server {

       listen 443 ssl http2;

       server_name  localhost;

    #    ssl on;

    location / {

           root   html;

              index  index.html index.htm;

            try_files $uri /index.html;

       }

       ssl_certificate      /Users/Admin/Downloads/ssl/server.crt; //路径根据实际调整

       ssl_certificate_key  /Users/Admin/Downloads/ssl/server.key;

       ssl_session_cache    shared:SSL:1m;

       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;

       ssl_prefer_server_ciphers  on;

    #    http2_push static/img/loginimg.jpg // 服务端推送

       

    }

}

 配置完成后nginx -s reload 访问是https://localhost;443 注意https

会无法访问直接输入thisisunsafe

总结:http1对比http2 多路复用 相比网络请求少了 从而减少资源消耗

http1

http2 

 

1-7 SSR技术(next插件)

http官方文档:HTTP headers - HTTP | MDN

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值