热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx作为静态资源web服务

一、CDN1、定义:内容分发的逻辑网络。2、作用:CDN能做到传输延时的最小化。CDN请求示意图如下:二、静态资源需要配置的一些语法模块。
 一、CDN

1、定义:

内容分发的逻辑网络。

2、作用:

CDN能做到传输延时的最小化。

CDN请求示意图如下:

二、静态资源需要配置的一些语法模块。

1、配置语法 - 文件读取

Syntax : sendfile on | off;
Default : sendfile off;
Context : http,server,location,
if in location

当然现在随着Nginx和Linux的版本不断更新,已经出现了异步文件读取的模块:--with-file-aio模块。

2、tcp_nopush

配置语法

Syntax : tcp_nopush on | off;
Default : tcp_nopush off;
Context : server,location;

作用:

sendfile开启的情况下,提高网络包的传输效率。(不是很着急的将包推送给客户端,就像是发送快递一样,来了一个包裹不着急送出去,攒一攒,等有了10个包裹后,找一个快递员一次性就送出去,这样是不是就提高了送的效率呀?)

场景:

在大文件传输的时候,推荐打开。

 

3、tcp_nodelay

配置语法

Syntax : tcp_nodelay on | off;
Default : tcp_nodelay on;
Context : server,location;

nodelay和nopush是相对应的配置语法。

作用:

必须是在 keeplive (长连接)下,才能提到提高网络包的传输实时性的作用。

场景:

要求实时性比较高的场景。

 

三、压缩相关(也是静态资源配置)

1、gzip

配置语法

Syntax : gzip on | off;
Default :
gzip off;
Context : server,location,
if in location;

作用:

压缩传输。

服务端进行压缩,浏览器进行解压。

压缩和解压能减少网络传输带宽的消耗,既可以减少服务端的带宽资源,也可以减小文件传输的大小,从而实现传输的实时性。

 

2、压缩比例

配置语法

Syntax : gzip_comp_level level;
Default : gzip_comp_level
1; //压缩比率越高,文件越小,但是也越耗服务器性能。
Context : server,location;

 

 3、压缩HTTP协议的版本。

配置语法

Syntax : gzip_http_version 1.0 | 1.1;
Default : gzip_http_version
1.1;
Context : http,server,location;

 

4、拓展Nginx压缩模块

a、http_gzip_staic_module - 预读gzip功能。

html.gz是gzip的预压缩文件,如果有的话,就把这个1.html.gzip返回给用户。这对硬盘的要求比较高。

b.http_gunzip_module -应用支持 gunzip的压缩方式。为了支持很少一部分浏览器无法支持gzip压缩和解压功能而需要用到的。

 

四、压缩先关示例

1、对传输图片的压缩

配置

 

location ~ .*\.(jpg|gif|png)$ {gzip on;gzip_http_version 1.1;gzip_comp_level 6;gzip_types text/plain application/Javascript application/x-Javascript text/css application/xml text/Javascript application/x-httpd-php image/jpeg image/gif img/png;root /opt/app/code/images;
}

访问  http://192.168.0.133/qq.jpg 

当然这里需要自行上传图片到自己服务器的指定目录。

注:当文件超过1M后,压缩个几kb,在浏览器上面不容易看出来,可以只传个几百kb的图片,更容易观察。

 

2、对传输文件的压缩

配置

location ~ .*\.(txt|xml)$ {gzip on;gzip_http_version 1.1;gzip_comp_level 1;gzip_types text/plain application/Javascript application/x-Javascript text/css application/xml text/Javascript application/x-httpd-php image/jpeg image/gif img/png;root /opt/app/code/doc;
}

 然后访问 http://192.168.0.133/access.txt

这里可以将 access.log 复制过来改个名字。

3、下载预压缩文件

配置

location ~ ^/download {gzip_static on;tcp_nopush on;root /opt/app/code;
}

 然后将 qq.jpg先进行一个预压缩。

如果没配置  gzip_static on;的话,服务器会报 404的错误。

开启 gzip功能后再次访问该地址,就可以正常下载该文件了。

本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/protected/p/11335015.html

转:https://www.cnblogs.com/chrdai/p/11335015.html



推荐阅读
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
author-avatar
zj5415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有