中国建设银行手机网站下载,怎么注册核酸检测公司,做网站公违法嘛,动画设计考研1.1 网页压缩与缓存 在使用 Apache 作为 Web 服务器的过程中#xff0c;只有对 Apache 服务器进行适当的优化配 置#xff0c;才能让 Apache 发挥出更好的性能。反过来说#xff0c;如果 Apache 的配置非常糟糕#xff0c; Apache 可能无法正常为我们服务。因此#xff0c…1.1 网页压缩与缓存 在使用 Apache 作为 Web 服务器的过程中只有对 Apache 服务器进行适当的优化配 置才能让 Apache 发挥出更好的性能。反过来说如果 Apache 的配置非常糟糕 Apache 可能无法正常为我们服务。因此针对各种企业应用需求对 Apache 服务器的配置进行一定 的优化是必不可少的。
1.1 网页压缩 网站的访问速度是由多个因素所共同决定的这些因素包括应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是 Apache本身的响应速度。因此当为网站性能所苦恼时第一个需要着手进行处理的便是尽可能的提升 Apache 的执行速度可以使用网页压缩提升应用程序的速度。更重要的是它完全不需要任何的成本只不过是会让服务器 CPU 占用率稍微提升一两个百分点或者更少。
1. gzip 介绍 gzip 是一种流行的文件压缩算法目前应用非常广泛尤其是在 Linux 平台。当使用gzip 压缩一个纯文本文件时效果是非常明显的大约可以减少 70 以上的文件大小。利用 Apache 中的 gzip 模块可以使用 gzip 压缩算法来对 Apache 服务器发布的网页内容进行压缩后再传输到客户端浏览器。经过压缩后实际上降低了网络传输的字节数最明显的好处就是可以加快网页加载的速度。 网页加载速度加快的好处不言而喻。除了节省流量改善用户的浏览体验外另一个潜 在的好处是 gzip 与搜索引擎的抓取工具有着更好的关系。
2. HTTP 的压缩过程 Web 服务器接收到浏览器的 HTTP 请求后检查浏览器是否支持 HTTP 压缩Accept-Encoding 信息。如果浏览器支持 HTTP 压缩 Web 服务器检查请求文件的后缀名。如果请求文件是 HTML 、 CSS 等静态文件 Web 服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件。如果请求文件的压缩文件不存在Web 服务器向浏览器返回未压缩的请求文件并在压缩缓冲目录中存放请求文件的压缩文件。如果请求文件的最新压缩文件已经存在则直接返回请求文件的压缩文件。如果请求文件是动态文件Web服务器动态压缩内容并返回浏览器压缩内容不存放到压缩缓存目录中。
3. Apache 的压缩模块 Apache 1.x 系列没有内建网页压缩技术使用的是额外的第三方 mod_gzip 模块来执第 2 页 共 17 页 行压缩。而 Apache 2.x 官方在开发的时候就把网页压缩考虑进去内建了 mod_deflate 这个模块用以取代 mod_gzip 。两者都是使用的 gzip 压缩算法它们的运作原理是类似的。 mod_deflate 压缩速度略快而 mod_gzip 的压缩比略高。一般默认情况下mod_gzip 会比 mod_deflate 多出 4%~6的压缩量。 一般来说mod_gzip 对服务器 CPU 的占用要高一些。 mod_deflate 是专门为确保服务器的性能而使用的一个压缩模块mod_deflate 需要较少的资源来压缩文件。这意味着在高流量的服务器使用 mod_deflate 可能会比 mod_gzip 加载速度更快。 简而言之如果网站访问量较小想要加快网页的加载速度就使用 mod_gzip 。虽然会额外耗费一些服务器资源但也是值得的。如果网站访问量较大并且使用的是共享的虚拟主机所分配系统资源有限的话使用 mod_deflate 将会是更好的选择。 Apache 2.4.25 版本中 mod_deflate 模块可使用 DeflateCompressionLevel 指令设置压缩级别。该指令的值可为 1 压缩速度最快最低的压缩质量至 9 最慢的压缩速度压缩率最高之间的整数其默认值为 6 压缩速度和压缩质量较为平衡的值。这个简单的变化更是使得 mod_deflate 可以轻松媲美 mod_gzip 的压缩。
4. mod_deflate 模块
1 检查是否安装 mod_deflate 模块。
[rootwww ~]# apachectl -t -D DUMP_MODULES
Loaded Modules:core_module (static)so_module (static)http_module (static)mpm_worker_module (static)authn_file_module (shared)authn_core_module (shared)authz_host_module (shared)authz_groupfile_module (shared)authz_user_module (shared)authz_core_module (shared)access_compat_module (shared)auth_basic_module (shared)reqtimeout_module (shared)filter_module (shared)mime_module (shared)log_config_module (shared)env_module (shared)headers_module (shared)setenvif_module (shared)version_module (shared)unixd_module (shared)status_module (shared)autoindex_module (shared)dir_module (shared)alias_module (shared)2 重新编译 Apache 添加 mod_deflate 模块。
[rootwww ~]# cd /usr/src/httpd-2.4.25/
[rootwww httpd-2.4.25]# yum install -y zlib-devel
[rootwww httpd-2.4.25]# ./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate
[rootwww httpd-2.4.25]# cd /usr/local/httpd/conf/
[rootwww conf]# mv httpd.conf httpd.conf.bak
[rootwww conf]# systemctl stop httpd.service
[rootwww conf]# cd /usr/src/httpd-2.4.25/
[rootwww httpd-2.4.25]# make -j2 make install
3配置 mod_deflate 模块启用
[rootwww conf]# vim httpd.conf
Listen 192.168.56.10:80 ##52行修改端口号
LoadModule deflate_module modules/mod_deflate.so ##106行取消注释
ServerName www.ymk.com:80 ##201行修改域名信息
###最后一行开启gzip功能
###设置对什么样的内容进行gzip压缩
###设置压缩级别1-9之间
###启用deflate模块对本站点的输出进行gzip压缩
IfModule mod_deflate.cAddOutputFilterByType DEFLATE text/hml text/plain text/css text/xml text/javascrpit text/jpg text/pngDeflateCompressionLevel 9SetOutputFilter DEFLATE
/IfModule4检查安装情况启动服务。
[rootwww conf]# apachectl -t ##检查配置文件是否正确
Syntax OK
[rootwww conf]# apachectl -t -D DUMP_MODULES | grep deflate ##检查 mod_deflate 模块是否安装deflate_module (shared)
[rootwww conf]# systemctl start httpd.service ##启动服务
测试缓存是否生效。
##编写网页文件
[rootwww htdocs]# vim index.html ##编写网页文件
htmlbodyh1It works! /h1img srckai.jpg/body
/html
[rootwww htdocs]# systemctl restart httpd ##重启服务5浏览器访问用F12按键查看。
在浏览器中选择“查看元素”可以看到有“AcceptEncoding:gzip”表示压缩已经生效。 1.2 网页缓存 网页缓存是将一部分经常不会改变和变动很少的页面缓存, 下次浏览器再次访问这些页 面时, 不需要再次去下载这些页面 , 从而提高了用户的访问速度。 Apache 的 mod_expires 模 块 会 自 动 生 成 页 面 头 部 信 息 中 的 Expires 标签和Cache-Control 标签客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面不需要向服务器再次发出请求从而降低客户端的访问频率和次数达到减少不必要的流量和增加访问速度的目的。 配置 mod_expires 模块的步骤与 mod_deflate 模块相似。
1. 配置 mod_expires 模块启用
1检查是否安装 mod_expires 模块
[rootwww htdocs]# apachectl -t -D DUMP_MODULES | grep expires
如果没有安装 mod_expires 模块重新编译安装 Apache 添加 mod_expires 模块。
[rootwww htdocs]# systemctl stop httpd.service
[rootwww htdocs]# cd /usr/local/httpd/conf/
[rootwww conf]# ls
extra httpd.conf httpd.conf.bak magic mime.types original
[rootwww conf]# mv httpd.conf httpd.conf.bak1
[rootwww conf]# yum -y install gcc gcc-c pcre pcre-devel zlib-devel
[rootwww conf]# cd /usr/src/httpd-2.4.25/
[rootwww httpd-2.4.25]# ./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expires
[rootwww httpd-2.4.25]# make -j2 make install
2配置 mod_expires 模块启用
[rootwww httpd-2.4.25]# cd /usr/local/httpd/conf/
[rootwww conf]# ls
extra httpd.conf httpd.conf.bak httpd.conf.bak1 magic mime.types original
[rootwww conf]# vim httpd.conf
###52行
Listen 192.168.56.10:80
###113行
LoadModule expires_module modules/mod_expires.so
###201行
ServerName www.ymk.com:80
###--末行添加-
IfModule mod_expires.c###打开网页缓存功能ExpiresActive On###设置缓存60秒ExpiresDefault access plus 60 seconds
/IfModule
3检查安装情况启动服务。
[rootwww conf]# apachectl -t ##验证配置文件是否配置正确
Syntax OK
[rootwww conf]# apachectl -t -D DUMP_MODULES | grep expires ##检查 mod_expires 模块是否安装expires_module (shared)
[rootwww conf]# systemctl restart httpd ##重启服务4测试缓存是否生效
浏览器访问http://192.168.56.10 1.2 隐藏版本信息
1配置 Apache 隐藏版本信息
[rootwww conf]# cd /usr/local/httpd/conf/
[rootwww conf]# vim httpd.conf
###493行取消注释
Include conf/extra/httpd-default.conf
[rootwww conf]# vim extra/httpd-default.conf
###55行将原本的 Full 改为 Prod只显示名称没有版本
ServerTokens Prod
[rootwww conf]# systemctl restart httpd ##重启服务ServerTokens表示 Server回送给客户端的响应头域是否包含关于服务器OS类型和编译过的模块描述信息
浏览器访问 http://192.168.56.10或者http://www.ymk.com 查看 Server 项 1.3 Apache 防盗链 Apache 的默认配置除了性能可以优化外还需要对安全性进行相应的配置。默认配置能保证服务器正常提供服务但 Apache 作为一个软件必然也会存在一些漏洞尽可能的降低潜在的风险是管理员必须掌握的内容。 一般来说用户浏览一个完整的页面并不是一次性全部传送到客户端的。如果所请求的页面带有图片或其他信息那么第一个 HTTP 请求传送的是这个页面的文本然后通过客户端的浏览器对这段文本进行解释执行。如果发现其中还有图片那么客户端的浏览器会再第 10 页 共 17 页次发送一条 HTTP 请求当这个请求被处理后这个图片文件才会被传送到客户端最后浏览器会将图片安放到页面的正确位置就这样一个完整的页面要经过多次发送 HTTP 请求才能够被完整的显示。 基于这样的机制就会产生盗链问题如果一个网站中没有其页面中所说图片信息那么它完全可以链接到其他网站的图片信息上。这样没有任何资源的网站利用了其他网站的资源来展示给浏览者提高了自己的访问量而大部分浏览者又不会很容易地发现。一些不良网站为了不增加成本而扩充自己站点内容经常盗用其他网站的链接。一方面损害了原网站的合法利益另一方面又加重了服务器的负担。 HTTP 标准协议中有专门的 Referer 字段记录它的作用如下。
可以追溯上一个入站地址是什么。对于资源文件可以跟踪到包含显示它的网页地址是什么因此所有防盗链方法都是基 于这个 Referer 字段。
1. 配置防盗链
准备两台服务器、一台客户端且两台服务器上已分别部署完 Apache 服务。
1在 Windows 系统中访问 http://192.168.56.10和 http://192.168.56.20确保 Apache 工作正常 如图所示。 2. 检查是否安装 mod_rewrite 模块
检查是否安装mod_rewrite模块
[rootwww ~]# apachectl -t -D DUMP_MODULES | grep rewrite如果没有安装mod_rewrite模块重新编译安装 Apache 添加mod_rewrite模块。
[rootwww ~]# cd /usr/local/httpd/conf/
[rootwww conf]# mv httpd.conf httpd.conf.bak2
[rootwww conf]# yum -y install gcc gcc-c pcre pcre-devel zlib-devel
[rootwww conf]# cd /usr/src/httpd-2.4.25/
[rootwww httpd-2.4.25]# ./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate --enable-expire
[rootwww httpd-2.4.25]# make -j2 make install
配置mod_rewrite模块启用
[rootwww httpd-2.4.25]# cd /usr/local/httpd/conf/
[rootwww conf]# vim httpd.conf
###159行
LoadModule rewrite_module modules/mod_rewrite.so
###添加如下内容
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://ymk.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ymk.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ymk.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ymk.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.ymk.com/error.png
RewriteCond %{HTTP_REFERER} !^http://www.abc.com/.*$ [NC] 的字段含义
%{HTTP_REFERER} 存放一个链接的 URL表示从哪个链接中转访问目录下的静态资源。!^”表示不以后面的字符串开头。http://www.abc.com”是本网站的路径按整个字符串匹配。.*$”表示以任意字符结尾。[NC] 表示不区分大小写字母。RewriteRule .*\.(gif|jpg|swf)$ http://www.abc.com/error.png 的字段含义. 表示匹配一个字符。*”表示匹配 0 到多个字符与.合起来的意思是匹配 0 到多次前面的任意字符如果是 1 到多次匹配可以用表示。“\.”在这里的\是转义符\.就代表符号.的意思。因为.在指令中是属于规则字符有相应的含义 如果需要匹配需要在前面加个转义符\其它规则字符如果需要匹配也做同样处理。(gif|jpg|swf)$ 表示匹配gif、jpg、swf任意一个$表示结束。最后的规则是以.gif、.jpg、.swf结尾 前面是1到多个字符的字符串也就是匹配图片类型的文件。http://www.abc.com/error.png 表示转发到这个路径 。
整个配置的含义是 使用本网站以外的网站域名 访问本站的图片文件时显示error.png 这个图片。
3. 网页准备
web源主机配置
[rootwww conf]# cd /usr/local/httpd/htdocs/
[rootwww htdocs]# ls
error.png index.html kai.jpg
[rootwww htdocs]# cat index.html
htmlbodyh1www.ymk.com /h1img srckai.jpg/body
/html盗链网站主机配置
[rootLinux02 ~]# cd /usr/local/httpd/htdocs/
[rootLinux02 htdocs]# cat index.html
htmlbodyh1www.kai.com/h1img srchttp://192.168.56.10/kai.jpg/body
/html在盗图网站主机上进行浏览器验证