网站性能提升

news2024/9/9 0:37:45

使用gzip 压缩提升网站性能

一、介绍

网站开发到一定程度,可能css文件或js文件会越来越大,因为有可能加载了很多的插件。这个时候如果能把这些文件压缩一下就好了。

nginx就支持这种功能,它可以把静态文件压缩好之后再传给浏览器。浏览器也要支持这种功能,只要浏览器的请求头带上Accept-Encoding: gzip就可以了。假如有一个文件叫application.css,那nginx就会使用gzip模块把这个文件压缩,然后传给浏览器,浏览器再解压缩成原来的css文件,就能读取了。

所有的这一切都需要nginx已经有编译过ngx_http_gzip_module这个模块。这个模块能对需要的静态文件压缩大小,比如图片,css,javascript,html等。压缩是需要消耗CPU,但能提高传缩的速度,因为传缩量少了许多,从而节省带宽。

二、 使用

使用之前先来查看一下是否编译了ngx_http_gzip_module这个模块。

sudo nginx -V

如果输出--with-ngx_http_gzip_module,说明已经编译了。

三、配置nginx的gzip

http {
        gzip on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        server {
                location ~ ^/assets/ {
                   gzip_static on;
                   expires max;
                   add_header Cache-Control public;
                }        
        }
}

上面最重要的是http中gzip on;还有gzip_types这两行,是一定要写的。其他的gzip_vary等都是一些配置,可以不写。

然后在需要压缩的静态资源那里加上下面三行。

gzip_static on;
expires max;
add_header Cache-Control public;

改了配置用sudo nginx -s reload重新加载生效。

四、测试

1、测试可以使用浏览器,比如chrome,只要用开发者的network功能查看两次资源的大小就好了。

2、或者使用curl工具也可以。

~/codes/rails365 (master) $ curl -I -H "Accept-Encoding: gzip" http://www.rails365.net/assets/application-7166fb1597da14300423c6a60c281a45f24573b249eafe0fd84b5c261db1d3a5.js
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Tue, 20 Oct 2015 10:44:52 GMT
Content-Type: application/x-javascript
Last-Modified: Tue, 20 Oct 2015 09:36:44 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"56260b2c-22b41"
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Cache-Control: public
Content-Encoding: gzip

只要返回Content-Encoding: gzip说明成功的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CATIA V5R21安装包下载及图文安装教程

大家好,今天给大家分享下catia安装教程 注意安装前请退出杀毒软件,防止误报影响安装进程 下载链接:百度网盘 请输入提取码 提取码:ypc6 01 在电脑D盘新建文件夹命名为CATIA,将下载的软件压缩包放置在该文件夹。 鼠标右击【C…

进行良好的文献综述能否提高学术研究的可信度

VersaBot一键生成文献综述 进行良好的文献综述 对于从多个方面提高学术研究的可信度至关重要; 1. 展示专业知识: 全面的回顾表明您对您所在领域的现有知识和相关理论有深入的了解。这将使您成为权威,并将您的研究置于更广泛的背景下。 2.…

初步入门C ++之类的概念

文章目录 0 Hello World!1 编译过程2 类2.1 类的概念2.2 构造函数与析构函数 0 Hello World! #include <iostream> //相当于#include <stdio.h>int main(int argc, char argv[]) {char c;std::cout << "Hello World!\n" <<…

入门 PyQt6 看过来(案例)14~ 分组

本文分享一个分组框功能&#xff0c;采用pyqt6里的QGroupBox​控件&#xff0c;效果如下&#xff1a;性别和专业分开为两个分组框内&#xff1a; ​ 1 功能实现思路 ui页面布局设计 性别和专业要设计成两个分组框&#xff1a; ​ 逻辑实现 引入信号和槽函数来实现点击单选…

Cybersecurity ASPICE实施策略-基于ISO/SAE 21434-亚远景科技

近几年&#xff0c;随着软件定义汽车和汽车的智能化和网联化&#xff0c;使得汽车融合了现代通信与网络通信技术&#xff0c;实现了车与人、车与车、车与道路、车与云端等智能信息交互和共享&#xff0c;也让车具备了环境感知、协同控制、智能决策等功能&#xff1b;与此同时&a…

构建可定制的表情选择器组件

你好呀&#xff0c;我是小邹。 概述 在当今的交互式Web应用中&#xff0c;表情符号&#xff08;Emoji&#xff09;已成为一种流行的沟通方式。为了提升用户体验并简化开发流程&#xff0c;本教程将引导您如何构建一个可高度定制的表情选择器组件。此组件将允许用户在Web表单中…

力扣621.任务调度器

力扣621.任务调度器 桶思想当桶放不满时 答案为桶面积 maxcount(最后一行) (max - 1)(n1)当桶放的满时 答案为任务总数 tasks.size()最终两者取大即可 class Solution {public:int leastInterval(vector<char>& tasks, int n) {int len tasks.size();vector<…

QT--聊天室

一、设计要求 用QT做一个聊天室&#xff0c; 制作一个服务器和客户端。可以进行注册、登录&#xff0c; 登陆成功后可以使用昵称进行发送、接收消息。 能根据昵称、聊天内容查询历史记录&#xff0c;也可以查询全部聊天记录。 。 二、客户端三级ui界面 三、项目代码 //在…

测试用例:确保软件质量的基石

大家好&#xff0c;我是一名测试开发工程师&#xff0c;已经开源一套【自动化测试框架】和【测试管理平台】&#xff0c;欢迎大家联系我&#xff0c;一起【分享测试知识&#xff0c;交流测试技术】 在当今这个数字化时代&#xff0c;软件已经成为人们日常生活、工作和学习中不可…

Hive3:Centos7环境部署Hive服务

一、安装说明 1、Hadoop集群情况 3台机器&#xff1a;4G2C、2G2C、2G2C 安装教程&#xff1a;Centos7环境安装Hadoop集群 2、安装MySQL&#xff0c;用于存储Hive的元数据 在102机器上安装MySQL 安装MySQL使用服务器的root账号 3、最后安装Hive 安装hive过程使用服务器的atgu…

fatal: Could not read from remote repository. 解决方法

问题描述&#xff1a; Git : fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists。 解决方法&#xff1a; 当在网上尝试大量方法仍然失败的时候&#xff0c;不妨试试这个方法。 在 github 上&…

ROUND() Function in SQL(四舍五入)

ROUND() Function in SQL ROUND() 函数用于将数值四舍五入到指定的小数位数或者整数位数。 不同的数据库系统可能会有一些细微的语法差异&#xff0c;但基本功能都是一致的。 1. 基本语法 ROUND(number, decimal_places)number: 要进行四舍五入的数值。decimal_places: 可选参…

2024年7月30日 十二生肖 今日运势

小运播报&#xff1a;2024年7月30日&#xff0c;星期二&#xff0c;农历六月廿五 &#xff08;甲辰年辛未月乙未日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;兔、马、猴 需要注意&#xff1a;狗、鼠、牛 喜神方位&#xff1a;西北方 财神方位&#xff1a;…

基于SpringBoot+Vue的游戏攻略分享平台(带1w+文档)

基于SpringBootVue的游戏攻略分享平台(带1w文档) 本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了本系统的开发背景&#xff0c;所要完成的功能和开发的过程&#xff0c;主要说…

大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

零基础入门转录组数据分析——加权基因共表达网络分析(WGCNA,Weighted correlation network analysis)

零基础入门转录组数据分析——加权基因共表达网络分析&#xff08;WGCNA&#xff0c;Weighted correlation network analysis&#xff09; 目录 零基础入门转录组数据分析——加权基因共表达网络分析&#xff08;WGCNA&#xff0c;Weighted correlation network analysis&#…

c语言代码运行不成功,如何解决?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

GEE数据:Sentinel-2数据更新新增两个云和雪波段(MSK_CLDPRB和MSK_SNWPRB)

目录 简介 数据时间 数据提供者 Collection Snippet 波段名称 Class Table: SCL 影像属性 代码 结果 简介 2022年1月25日之后&#xff0c;PROCESSING_BASELINE为“04.00”或以上的Sentinel-2场景的DN&#xff08;值&#xff09;范围移动了1000。HARMONIZED集合将新场…

【C++】std::shared_ptr智能指针详解和示例

在C中&#xff0c;智能指针是一种用于自动管理动态分配内存的机制&#xff0c;旨在减少内存泄漏和野指针的风险。std::shared_ptr 是C标准库提供的几种智能指针之一&#xff0c;它通过共享所有权的机制来管理动态分配的对象。本文将详细解析 std::shared_ptr 的工作原理、特性&…

【电路笔记】-共源JFET放大器

共源JFET放大器 文章目录 共源JFET放大器1、概述2、共源JFET放大器3、JFET放大器电流和功率增益共源JFET放大器使用结场效应晶体管作为其主要有源器件,提供高输入阻抗特性。 1、概述 普通源JFET放大器与共射极BJT放大器相比有一个重要优点,即FET具有极高的输入阻抗,再加上低…