为什么我启用GZIP压缩不起作用
下面”舒宇卓创站长“将和大家一起分享一下,希望对咱们站长有所帮助! 1开启网页GZIP压缩有什么好处? Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。 进而对于搜索引擎的收录也有一定的好处,也大大提高了我们的用户体验度。 2如何启用IIS的Gzip压缩功能: 首先要有网站管理权限和服务器远程管理权限
步骤如下: 第一、如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。打开Internet信息服务(IIS)管理器,右击“网站”—>“属性”(注意:这里的网站是整个网站文件不是某个网站目录),之后选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”。 第二、在Internet信息服务(IIS)管理器,右击“Web服务扩展”—>“增加一个新的Web服务扩展”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzipdll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。 第三、使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBasexml(建议先备份),查找 IIsCompressionScheme标签,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,HcDynamicCompressionLevel,设置压缩率,取值0~10,0不压缩,10最高压缩率,这里设置成9,9是性价比最高的一个。HcFileExtensions,需要压缩的静态文件扩展名,默认只有htm,html,txt,可以把js,css,xml添加进去。建议按原来的格式,用换行作为分隔。
Linux tar 命令是归档或分发文件时的强大武器。GNU tar 归档包可以包含多个文件和目录,还能保留其文件权限,它还支持多种压缩格式。Tar 表示 "Tape Archiver",这种格式是 POSIX 标准。
Tar 文件格式
tar 压缩等级简介:
无压缩 没有压缩的文件用 tar 结尾。
Gzip 压缩 Gzip 格式是 tar 使用最广泛的压缩格式,它能快速压缩和提取文件。用 gzip 压缩的文件通常用 targz 或 tgz 结尾。这里有一些如何创建和解压 targz 文件的例子。
Bzip2 压缩 和 Gzip 格式相比 Bzip2 提供了更好的压缩比。创建压缩文件也比较慢,通常采用 tarbz2 结尾。
Lzip(LAMA)压缩 Lizp 压缩结合了 Gzip 快速的优势,以及和 Bzip2 类似(甚至更好) 的压缩率。尽管有这些好处,这个格式并没有得到广泛使用。
Lzop 压缩 这个压缩选项也许是 tar 最快的压缩格式,它的压缩率和 gzip 类似,但也没有广泛使用。
常见的格式是 targz 和 tarbz2。如果你想快速压缩,那么就是用 gzip。如果归档文件大小比较重要,就是用 tarbz2。
tar 命令用来干什么
下面是一些使用 tar 命令的常见情形。
备份服务器或桌面系统
文档归档
软件分发
安装 tar
大部分 Linux 系统默认都安装了 tar。如果没有,这里有安装 tar 的命令。
CentOS
在 CentOS 中,以 root 用户在 shell 中执行下面的命令安装 tar。
复制代码
代码如下:
yum install tar
Ubuntu
下面的命令会在 Ubuntu 上安装 tar。“sudo” 命令确保 apt 命令是以 root 权限运行的。
代码如下:
sudo apt-get install tar
Debian
下面的 apt 命令在 Debian 上安装 tar。
代码如下:
apt-get install tar
Windows
tar 命令在 Windows 也可以使用,你可以从 Gunwin 项目http://gnuwin32sourceforgenet/packages/gtarhtm中下载它。
创建 targz 文件
下面是在 shell 中运行 tar 命令 的一些例子。下面我会解释这些命令行选项。
代码如下:
tar pczf myarchivetargz /home/till/mydocuments
这个命令会创建归档文件 myarchivetargz,其中包括了路径 /home/till/mydocuments 中的文件和目录。命令行选项解释:
[p] 这个选项表示 “preserve”,它指示 tar 在归档文件中保留文件属主和权限信息。
[c] 表示创建。要创建文件时不能缺少这个选项。
[z] z 选项启用 gzip 压缩。
[f] file 选项告诉 tar 创建一个归档文件。如果没有这个选项 tar 会把输出发送到标准输出( LCTT 译注:如果没有指定,标准输出默认是屏幕,显然你不会想在屏幕上显示一堆乱码,通常你可以用管道符号送到其它程序去)。
Tar 命令示例
示例 1: 备份 /etc 目录
创建 /etc 配置目录的一个备份。备份保存在 root 目录。
代码如下:
tar pczvf /root/etctargz /etc
要以 root 用户运行命令确保 /etc 中的所有文件都会被包含在备份中。这次,我在命令中添加了 [v] 选项。这个选项表示 verbose,它告诉 tar 显示所有被包含到归档文件中的文件名。
示例 2: 备份你的 /home 目录
创建你的 home 目录的备份。备份会被保存到 /backup 目录。
tar czf /backup/myusertargz /home/myuser
用你的用户名替换 myuser。这个命令中,我省略了 [p] 选项,也就不会保存权限。
示例 3: 基于文件的 MySQL 数据库备份
在大部分 Linux 发行版中,MySQL 数据库保存在 /var/lib/mysql。你可以使用下面的命令来查看:
代码如下:
ls /var/lib/mysql
用 tar 备份 MySQL 数据文件时为了保持数据一致性,首先停用数据库服务器。备份会被写到 /backup 目录。
1) 创建 backup 目录
代码如下:
mkdir /backup
chmod 600 /backup
2) 停止 MySQL,用 tar 进行备份并重新启动数据库。
代码如下:
service mysql stop
tar pczf /backup/mysqltargz /var/lib/mysql
service mysql start
ls -lah /backup
提取 targz 文件
提取 targz 文件的命令是:
代码如下:
tar xzf myarchivetargz
tar 命令选项解释
[x] x 表示提取,提取 tar 文件时这个命令不可缺少。
[z] z 选项告诉 tar 要解压的归档文件是 gzip 格式。
[f] 该选项告诉 tar 从一个文件中读取归档内容,本例中是 myarchivetargz。
上面的 tar 命令会安静地提取 targz 文件,除非有错误信息。如果你想要看提取了哪些文件,那么添加 “v” 选项。
复制代码
代码如下:
tar xzvf myarchivetargz
[v] 选项表示 verbose,它会向你显示解压的文件名。
HTML简单理解,他就是一个网页文件
详细一点:
HTML是用来描述网页的一种语言。
HTML指的是超文本标记语言 (Hyper Text Markup Language)
HTML不是一种编程语言,而是一种标记语言 (markup language),标记语言是一套标记标签 (markup tag)
HTML使用标记标签来描述网页
HTML文档 = 网页
HTML文档描述网页
HTML文档包含 HTML 标签和纯文本
HTML文档也被称为网页
Web浏览器的作用是读取 HTML文档,并以网页的形式显示出它们。浏览器不会显示 HTML标签,而是使用标签来解释页面的内容:
<html><body>
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
</body>
</html>
这个就是一个简单的网页,是HTML做的网页,所以HTML就是网页!
上述代码解释:
<html> 与 </html> 之间的文本描述网页
<body> 与 </body> 之间的文本是可见的页面内容
<h1> 与 </h1> 之间的文本被显示为标题
<p> 与 </p> 之间的文本被显示为段落
HTML标签是由尖括号包围的关键词,比如 <html>
HTML标签通常是成对出现的,比如 <b> 和 </b>
标签对中的第一个标签是开始标签,第二个标签是结束标签,开始和结束标签也被称为开放标签和闭合标签!
HTML是web前端工程师必须要学的
HTML和CSS还有JavaScript都是前端必学的,学完这三个还要学框架,例如:vuejs、jQuery、react、node、es6、mysql、backbone、angularjs等等框架都是做前端工程师需要学习的!
web前端的发展方向及前景
web前端的发展方向就是做网页,不管是电脑看到的网页,还是手机浏览的网页都是前端做的,现在是互联网高速发展的时间,很多企业都在线下转线上,那么他想在线上有一个好的平台就需要前端为他搭建一个平台,2016年前端被称呼为最有发展的程序工程师的行业!
web前端的学习路线:
学好前端不容易,前端一开始需要学HTML和CSS做为基础,掌握了HTML和CSS,会写静态页面后就是继续学JavaScript,有了HTML和CSS为基础,学JavaScript是快速的,当然自学肯定会遇到问题,自己学得自己自学速度慢,效率不高,自控能力不强等等问题,那可以的报班学,系统学习比自学快更加容易快速掌握前端技术,那么这个班在哪里找呢? 我给大伙退键一个学习的新手叩群,号一开始是66壹,然后就是473,最后面的也就是一零八,加起来一起就可以了,前端学习不易,不是真心的就不要来了!前端学完前面的HTML和CSS还有JavaScript,就到前面我刚刚说的前端框架,uejs、jQuery、react、node、es6、mysql、backbone、angularjs等等框架都是做前端工程师需要学习的!
入门
在我理解下的基础知识,就是我们可以写一些基本的样式,并能对页面的元素进行操作。举例来说,就是我们用Spring和JSP写了一个博客,然后我们可以用jQuery来对页面进行一些简单的操作,并可以调用一些API。因此,我们需要基本的HTML / CSS知识。只是要写好CSS并不是一件简单的事,这需要很多实战经验。随后,我们还需要有JavaScript的经验,要不怎么做前端呢?
同时,我们还需要对DOM有一些基础的了解,才能做一些基本的操作,如修改颜色等等。在这种情况下,最简单的方案就是使用jQuery这样的工具。不过,如果可以自己操作DOM是再好不过的了。
中级篇
中级篇就更有意思了,现在我们就需要对页面进行更复杂的操作。Ajax和JSON这两个技能是必须的,当我们要动态的改变页面的元素时,我们就需要从远程获取最新的数据结果。并且我们也需要提交表单到服务器,RESTful就是必须要学会的技能。未来我们还需要Fetch API,ReactiveX这些技能。
除此我们还需要掌握好HTML的语义化,像DIV / CSS这也会必须会的技能,我们应该还会使用模板引擎和SCSS / SASS。而这个层面来说,我们开始使用Nodejs来完成前端的构建等等的一系列动作,这时候必须学会使用命令行这类工具。并且,在这时候我们已经开始构建单页面应用了。
高级篇
JavaScript是一门易上手的语言,也充满了相当多的糟粕的用法。几年前人们使用CoffeeScript编成成JavaScript来编写更好的前端代码,现在人们有了ES6、TypeScript和WebPack来做这些事。尽管现在浏览器支持不完善,但是他们是未来。同样的还有某些CSS3的特性,其对于某些浏览器来说也是不支持的。而这些都是基于语言本来说的,要写好代码,我们还需要掌握面向对象编程、函数式编程、MVC / MVVM / MV这些概念。作为一合格的工程师,我们还需要把握好安全性(如跨域),做好 授权(如HTTP Basic、JWT等等)。
工程化
这个标题好像是放错了,这部分的内容主要都是自动构建的内容。首先,我们需要有基本的构建工具,无论你是使用gulp、grunt,还是只使用npm,这都不重要。重要的是,你可以自动化的完成构建的工具,编译、静态代码分析(JSLint、CSS Lint、TSLint)、对代码质量进行分析(如Code Climate,可以帮你检测出代码中的Bad Smell)、运行代码中的测试,并生成测试覆盖率的报告等等。这一切都需要你有一个自动构建的工作流。
兼容性
虽然我们离兼容IE6的时代已越来越远了,但是我们仍然有相当多的兼容性工作要做。基本的兼容性测试就是跨浏览器的测试,即Chrome,IE,Firefox,Safari等等。除此还有在不同的操作系统上对同一浏览器的测试,某些情况下可能表现不一致。如不同操作系统的字体大小,可能会导致一些细微的问题。
而随着移动设备的流行,我们还需要考虑下不同Android版本下的浏览器内核的表现不致,有时候还要一下不成器的Windows Phone。除此,还有同一个浏览器的不同版本问题,常见于IE。
前端特定
除了正常的编码之外,前端还有一些比较有意思的东西,如CSS3和JavaScript动画。使用Web字体,可惜这个不太适合汉字使用。还有Icon字体,毕竟这种字体是矢量的。不过Icon字体还有一些问题,如浏览器对其的抗锯齿优化,还有一个痛是你得准备四种不同类型的字体文件。因此,产生了一种东西SVG Sprite,在以前这就是CSS Sprite,只是CSS Sprite不能缩放。最后,我们还需要掌握一些基本的图形和图表框架的使用。
软件工程
这一点上和大部分语言的项目一样,我们需要使用版本管理软件,如git、svn,又或者是一些内部的工具。总之你肯定要有一个,而不是zip这种文件。然后,你还需要一些依赖管理工具,对于那些使用Webpack、Browserify来将代码编写成前端代码的项目来说,npm还是挺好用的。不过就个人来说,对于传统的项目来说我总觉得bower有些难用。我们还需要模块化我们的源码文件,才能使其他人更容易开始项目。
调试
作为一个工程师来说,调试是必备的技能。大部分浏览器都自带有调试工具,他们都不错——如果你使用过的话。在调试的过程中,直接用Console就可以输出值、计算值等等。如果你的项目在构建的过程中有一些问题,你就需要debugger这一行代码了。
在一些调用远程API的项目里,我们还需要一些更复杂的工具,即抓包工具。在调试移动设备时,像Wireshark、Charles这一类的工具,就可以让我们看到是否有一些异常的请求。当然在这个时候,还有一个不错的工具就是像Chrome自带的远程设备调试。对于移动网站来说,还要有Responsive视图。
测试
我遇到的很多前端工程师都是不写测试的,于是我便把它单独地抽了出现。对于一个前端项目来说,正常情况下,我们要有单元测试、功能测试,还有要一些UI测试来验证页面间是否可以跳转。对于依赖于第三方服务的应用来说,还要有一个Mock的服务来方便我们测试。如果是前后端分离的项目,我们还需要有集成测试。
性能与优化
要对Web应用进行性能优化,可能不是一件容易的事,有时候我们还知道哪些地方可以优化。这时候人们就可以使用Yahoo的YSlow,或者我最喜欢的Google PageSpeed来检测页面的一些问题,如有没有开启GZip、有没有压缩、合并、Minify JS代码等等。
我们还应该借助于NetWork这一类的工具,查看页面加载时,一些比较漫的资源文件,并对其进行优化。在一些情况下,我们还需要借助如Chrome的Timline、Profiel等工具来查看可以优化的地方。
设计
前端工程师还需要具备基本的UI技能。多数情况下拿到的只是一张图,如果是一个完整的页面,我们就需要快速分割页面布局。而依赖于不同的页面布局,如响应式、网格、FlexBox布局也会有不同的设计。而有些时候,我们就需要自己规划,制作一个基本的线框图(Wireframe)等等。
SEO
如果以搜索引擎作为流量来源,我们还需要考虑页面的内容,除非你用的是竞争排名。像Sitemap可能就不是我们考虑的内容,而我们还要考虑很多点。首先,我们需要保证页面的内容是对于搜索引擎是可见的,并且对应的页面还要有基本的Title、Description和Keyword。然后在一些关键的字体,如栏目标题等等可以用H2之类的大字的地方就不要放过。同时在页面设计的过程中,我们还需要考虑一些内部链接的建设。
它即可以提供页面的可见度,又可以提高排名。最后,如果你是面向的是Google等支持结构化数据的搜索引擎,你还需要考虑一下MicroData / MicroFormat这一类东西。
因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS60,用的是php,那么我就在这里分享一下。
IIS 的 GZIP 压缩
1首先备份 IIS 的配置文件, 复制 C:\Windows\system32\inetsrv\metabasexml到另外的备份文件夹中 C:\Windows\system32\inetsrv\metabasexml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统
2 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。
3 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:\windows\system32\inetsrv\gzipdll ,并勾选“设置扩展状态为允许”,完成后点击确定。
4下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。
5 在开始菜单中运行 notepad C:\Windows\system32\inetsrv\metabasexml ,打开metabasexml 文件,请在任何改动前再次确认该文件已经备份。
6 用文本编辑器打开metabasexml ,用查找功能找到“IIsCompressionScheme”,共有3处,都在一起,分别是deflate、gzip和 Parameters,deflate也是一种压缩格式,不过性能上不如gzip。需要修改的是deflate和gzip这两段,参数基本一样,都要修改。
HcDynamicCompressionLevel是用来设置压缩率,默认是0,最高是10。低压缩级别生成稍大一些的压缩文件,但对 CPU 和内存资源的总体影响较小。高压缩级别通常会生成较小的压缩文件,但会占用较多的 CPU 时间和内存。有人说设置成9性价比最高。
HcFileExtensions是用来设置压缩的静态文件扩展名,默认是htm、html、txt,根据网站的自身情况添加扩展名,最基本的是js、css。添加时注意原有的换行格式。
HcScriptFileExtensions是用来设置压缩的动态文件扩展名,默认是asp、dll和exe,根据需要自行添加扩展名,无外乎 aspx、php等。可以将这一项的默认删除留空,这样所有的动态响应都以压缩方式发送。另外,还将动态压缩 HcFileExtensions 中所有未指定的静态文件类型,并且因此不将它们放入缓存。同样地,必须将 HcDoDynamicCompression 设置为 true,以进行动态压缩。
PHP Gzip
/压缩数据
/
public static function ob_gzip($content) // $content 就是要压缩的页面内容,或者说饼干原料
{
if( !headers_sent() && // 如果页面头部信息还没有输出
extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中
strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且浏览器说它可以接受GZIP的页面
{
$content = gzencode($content" OK",9); //此页已压缩”的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。
//然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: "strlen($content));
}
return $content; //返回压缩的内容,或者说把压缩好的饼干送回工作台。
}
基本linux命令有哪些呢?
1、ls命令
就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
常用参数搭配:
ls -a 列出目录所有文件,包含以开始的隐藏文件
ls -A 列出除及的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
实例:
(1) 按易读方式按时间反序排序,并显示文件详细信息
ls -lhrt
(2) 按大小反序显示文件详细信息
ls -lrS
(3)列出当前目录中所有以"t"开头的目录的详细内容
ls -l t
(4) 列出文件绝对路径(不包含隐藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件绝对路径(包含隐藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令语法:
cd [目录名]
说明:切换当前目录至 dirName。
实例:
(1)进入要目录
cd /
(2)进入 "home" 目录
cd ~
(3)进入上一次工作路径
cd -
(4)把上个命令的参数作为cd参数使用。
cd !$
3、pwd 命令
pwd 命令用于查看当前工作目录路径。
实例:
(1)查看当前路径
pwd
(2)查看软链接的实际路径
pwd -P
4、mkdir 命令
mkdir 命令用于创建文件夹。
可用选项:
-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
实例:
(1)当前工作目录下创建名为 t的文件夹
mkdir t
(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:
mkdir -p /tmp/test/t1/t
5、rm 命令
删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
rm [选项] 文件…
实例:
(1)删除任何 log 文件,删除前逐一询问确认:
rm -i log
(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认:
rm -rf test
(3)删除以 -f 开头的文件
rm -- -f
6、rmdir 命令
从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
注意:不能删除非空目录
实例:
(1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:
rmdir -p parent/child/child11
7、mv 命令
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
实例:
(1)将文件 testlog 重命名为 test1txt
mv testlog test1txt
(2)将文件 log1txt,log2txt,log3txt 移动到根的 test3 目录中
mv llog1txt log2txt log3txt /test3
(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
mv -i log1txt log2txt
(4)移动当前文件夹下的所有文件到上一级目录
mv /
8、cp 命令
将源文件复制至目标文件,或将多个源文件复制至目标目录。
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
实例:
(1)复制 atxt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。
cp -ai atxt test
(2)为 atxt 建议一个链接(快捷方式)
cp -s atxt link_atxt
9、cat 命令
cat 主要有三大功能:
1一次显示整个文件:
cat filename
2从键盘创建一个文件:
cat > filename
只能创建新文件,不能编辑已有文件。
3将几个文件合并为一个文件:
cat file1 file2 > file
-b 对非空输出行号
-n 输出所有行号
实例:
(1)把 log2012log 的文件内容加上行号后输入 log2013log 这个文件里
cat -n log2012log log2013log
(2)把 log2012log 和 log2013log 的文件内容加上行号(空白行不加)之后将内容附加到 loglog 里
cat -b log2012log log2013log loglog
(3)使用 here doc 生成新文件
cat >logtxt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l logtxt
cat logtxt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac logtxt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。
命令参数:
+n 从笫 n 行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
常用操作命令:
Enter 向下 n 行,需要定义。默认为 1 行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
实例:
(1)显示文件中从第3行起的内容
more +3 texttxt
(2)在所列出文件目录详细信息,借助管道使每次显示 5 行
ls -l | more -5
按空格显示下 5 行。
11、less 命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
常用命令参数:
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串:向下搜索“字符串”的功能
字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 有关)
N:反向重复前一个搜索(与 / 或 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
实例:
(1)ps 查看进程信息并通过 less 分页显示
ps -aux | less -N
(2)查看多个文件
less 1log 2log
可以使用 n 查看下一个,使用 p 查看前一个。
12、head 命令
head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
常用参数:
-n<行数> 显示的行数(行数为复数表示从最后向前数)
实例:
(1)显示 1log 文件中前 20 行
head 1log -n 20
(2)显示 1log 文件前 20 字节
head -c 20 log2014log
(3)显示 tlog最后 10 行
head -n -10 tlog
13、tail 命令
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
常用参数:
-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
(1)循环读取逐渐增加的文件内容
ping 127001 > pinglog &
后台运行:可使用 jobs -l 查看,也可使用 fg 将其移到前台运行。
tail -f pinglog
(查看日志)
14、which 命令
在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
常用参数:
-n指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
实例:
(1)查看 ls 命令是否存在,执行哪个
which ls
(2)查看 which
which which
(3)查看 cd
which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
查看当前 PATH 配置:
echo $PATH
或使用 env 查看所有环境变量及对应值
15、whereis 命令
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。
常用参数:
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
实例:
(1)查找 locate 程序相关文件
whereis locate
(2)查找 locate 的源码文件
whereis -s locate
(3)查找 lcoate 的帮助文件
whereis -m locate
适合缓存的内容
1 不变的图像,如logo,图标等
2 js、css静态文件
3 可下载的内容,媒体文件
适合协商缓存
1 HTML文件
2 经常替换的
3 经常修改的js、css文件,js、css文件的加载可以加入文件的签名来拒绝缓存,如‘indexcss签名’,‘index签名js’
不建议缓存的内容
1 用户隐私等敏感数据
2 经常改变的API数据接口
NGINX配置缓存策略
本地缓存配置
1 add_header指令:添加状态码为2XX和3XX的响应头信息,设置代码add_header name value [always];,可以设置Pragma、Expires、Cache-Control,可以继承
2 expires指令:通知浏览器过期时长,设置代码expires time;
3 Etag指令:指定签名,设置代码etag on|off,默认on
前端代码和资源压缩
优势
1 让资源文件更小,加快文件在网络中的传输,让网页更快的展现,降低带宽和流量的开销
压缩方式
1 js、css、、html代码的压缩
2 gzip压缩
gzip配置
gzip on|off; #是否开启gzipgzip_buffers 32 4K|16 8K; #缓冲(在内存中缓存几块?每块多大)gzip_comp_level [1-9] #推荐6,压缩级别(级别越高,压得越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA,什么样的Uri不进行gzip
gzip_min_length 200 #开始压缩的最小长度
gzip_http_version 10|11 #开始压缩的http协议版本
gzip_proxied #设置请求者代理服务器,该如何缓存内容
gzip_types text/plain application/xml image/png #对哪些类型的文件压缩,如txt、xml、css
gzip_vary on|off #是否传输gzip压缩标志
CDN加速
定义
1 CDN的全称content delivery network,内容分发网络
2 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定
3 在网络各处放置节点服务器所构成的有的互联网基础之上的一层智能虚拟网络
4 CDN系统能够实现地根据网络流量和各节点的连接、负载状况以及到用户距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上
优势
1 本地cache加速,提高了企业站点(尤其含有大量和静态页面站点)的访问速度
2 跨运营商的网络加速,保证不同网络的用户都能得到良好的访问质量
3 远程访问用户根据DNS负载均衡技术只能选择cache服务器
4 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点web服务器负载等功能
5 广泛分布的cdn节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵
工作原理
1 用户发起请求
2 智能DNS的解析(根据IP判断地理位置、接入网类型、选择路由最短和负载最轻的服务器)
3 取得缓存服务器ip
4 把内容返回给用户(如果缓存中有,没有就执行5、6、7)
5 向源站发起请求
6 将结果返回给用户
7 将结果存入缓存服务器
适用场景
1 站点或者应用中大量静态资源的加速分发,例如css、js、和HTML
2 大文件下载
3 直播网站
独立服务器
必要性
1 分担web服务器的I/O负载,将耗费资源的服务器分离出来,提高服务器的性能和稳定性
2 能够专门对服务器进行优化,为服务器设置针对性的缓存方案,减少带宽成本,提高访问速度
3 提高网站的可扩展性,通过增加服务器,提高吞吐能力
采用独立域名
原因:
1 同一域名下浏览器的并发连接数有限制,突破浏览器连接数的限制
2 由于cookie的原因,对缓存不利,大部分web cache都只缓存不带cookie的请求,导致每次的请求都不能命中cache
如何上传和同步
1 NFS共享方式
2 利用FTP同步
动态语言静态化
将现有的PHP等动态语言的逻辑代码生成为静态的HTML文件,用户访问动态脚本重定向到静态HTML文件的过程。对实时性要求不高
原因:
1 动态脚本通过会做逻辑计算和数据查询,访问量越大,服务器压力越大
2 访问量大时可能会造成CPU负载过高,数据库服务器压力过大
3 静态化可以减低逻辑处理压力,降低数据库服务器查询压力
实现方法
1 使用模板引擎
2 利用ob系列函数
需要获取swoole、workerman、TP、laravel、vue、Linux、redis以及性能优化,并发项目实战,微服务 架构方面的资料,可以私信我哦
0条评论