扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍Apache如何实现网页压缩与缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联-专业网站定制、快速模板网站建设、高性价比延边朝鲜族网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式延边朝鲜族网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖延边朝鲜族地区。费用合理售后完善,10年实体公司更值得信赖。
在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的
服务器配置的,以前的配置已经不适用当今互联网时代,为了适应企业需求,就需要考虑如何提升Apache的性
能与稳定性,这就是Apache优化的内容。
配置网页压缩功能
配置网页缓存时间
配置防盗链
配置隐藏版本号
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器。
降低了网络传输的字节数,加快网页加载的速度
节省流量,改善用户的浏览体验
gzip与搜索弓|擎的抓取工具有着更好的关系
mod_gzip 模块
mod_deflate 模块
没有内建网页压缩技术,但可使用第三E方mod_gzip 模块执行压缩。
在开发的时候,内建了mod_deflate 这个模块,取代mod_gzip。
两者均使用gzip压缩算法,运作原理类似
mod_deflate 压缩速度略快,而mod_gzip 的压缩比略高
mod_gzip 对服务器CPU的占用要高一些
高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快
(1)在宿主机将我们所需的工具包共享出去。
(2)通过Samba服务将工具包挂载到Linux系统。
[root@localhost ~]# smbclient -L //192.168.100.50/ //查看共享 Enter SAMBA\root's password: //匿名共享,没有密码,直接回车 OS=[Windows 10 Enterprise LTSC 2019 17763] Server=[Windows 10 Enterprise LTSC 2019 6.3] Sharename Type Comment --------- ---- ------- IPC$ IPC 远程 IPC share Disk tools Disk Users Disk Connection to 192.168.100.50 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) NetBIOS over TCP disabled -- no workgroup available [root@localhost ~]# mkdir /mnt/tools //创建挂载目录 [root@localhost ~]# mount.cifs //192.168.100.50/tools /mnt/tools/ //挂载 Password for root@//192.168.100.50/tools: [root@localhost ~]# cd /mnt/tools/ //进入挂载目录 [root@localhost tools]# ls //查看 awstats-7.6.tar.gz extundelete-0.2.4.tar.bz2 forbid.png jdk-8u191-windows-x64.zip LAMP-C7 cronolog-1.6.2-14.el7.x86_64.rpm fiddler.exe intellijideahahau2018.rar john-1.8.0.tar.gz picture.jpg [root@localhost tools]#
(3)将源码编译安装Apache服务的压缩包解压到“/opt/”目录。
[root@localhost tools]# cd LAMP-C7/ //切换目录 [root@localhost LAMP-C7]# ls apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip LAMP-php5.6.txt php-5.6.11.tar.bz2 apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 MySQL-5.6.26.tar.gz [root@localhost LAMP-C7]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/ //解压 [root@localhost LAMP-C7]# tar zxvf apr-1.6.2.tar.gz -C /opt/ //解压 [root@localhost LAMP-C7]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/ //解压
(4)进入“/opt/”目录,将两个apr包移动到“httpd-2.4.29/srclib/”目录,并重命名。
[root@localhost LAMP-C7]# cd /opt/ [root@localhost opt]# ls apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh [root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr [root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
(5)进入“httpd-2.4.29/”目录,然后安装编译所需环境包。
[root@localhost opt]# ls httpd-2.4.29 rh [root@localhost opt]# cd httpd-2.4.29/ [root@localhost httpd-2.4.29]# ls ABOUT_APACHE ap.d CHANGES docs httpd.spec libhttpd.dep Makefile.win README srclib acinclude.m4 build CMakeLists.txt emacs-style include libhttpd.dsp modules README.cmake support Apache-apr2.dsw BuildAll.dsp config.layout httpd.dep INSTALL libhttpd.mak NOTICE README.platforms test Apache.dsw BuildBin.dsp configure httpd.dsp InstallBin.dsp LICENSE NWGNUmakefile ROADMAP VERSIONING apache_probes.d buildconf configure.in httpd.mak LAYOUT Makefile.in os server [root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# yum -y install \ > gcc \ > gcc-c++ \ > make \ > pcre \ > pcre-devel \ > expat-devel \ > zlib-devel \ > perl ......//省略安装过程
(6)进行对Apache服务器的配置。
[root@localhost httpd-2.4.29]# ./configure \ > --prefix=/usr/local/httpd \ //安装路径 > --enable-deflate \ //启用压缩模块支持 > --enable-expires \ //启用缓存模块支持 > --enable-so \ //启用动态加载模块支持 > --enable-rewrite \ //启用网页地址重写功能 > --enable-charset-lite \ //启用字符集支持 > --enable-cgi //启用CGI脚本程序支持
(7)编译安装Apache服务。
[root@localhost httpd-2.4.29]# make && make install ......//省略编译安装过程 [root@localhost httpd-2.4.29]#
(8)对Apache服务配置文件进行修改。
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf //创建软链接,方便使用 [root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# vim /etc/httpd.conf Listen 192.168.52.133:80 //开启IPv4监听 #Listen 80 //注释IPv6监听 ServerName www.abc.com:80 //设置域名 LoadModule headers_module modules/mod_headers.so //请求头部,默认开启 LoadModule deflate_module modules/mod_deflate.so //开启压缩模块 LoadModule filter_module modules/mod_filter.so //过滤器,默认开启//尾行添加压缩模块信息 AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png //启用压缩的内容 DeflateCompressionLevel 9 //压缩级别,9级 SetOutputFilter DEFLATE //启用deflate模块对本站点的输出进行gzip压缩
(9)检查配置文件格式,格式正确。
[root@localhost httpd-2.4.29]# /usr/local/httpd/bin/apachectl -t Syntax OK [root@localhost httpd-2.4.29]#
(10)将“/usr/local/httpd/bin/”目录下的“apachectl”文件移动到“/etc/init.d/”目录下,并在文件开头添加chkconfig识别配置,然后将其添加为标准的Linux系统服务
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //复制 [root@localhost httpd-2.4.29]# vim /etc/init.d/httpd //在配置文件添加两行声明 # chkconfig: 35 85 21 //服务识别参数,在级别3、5中启动:启动和关闭的顺序分别为85、21 # description: Apache is a World Wide Web server //服务描述信息 [root@localhost httpd-2.4.29]# chkconfig --add httpd //将httpd服务添加为系统服务 [root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# service httpd start //启动Apache服务 [root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //将Apache服务的命令文件,建立软链接到易于系统识别的目录 [root@localhost httpd-2.4.29]#
(11)检查模块是否安装成功。
[root@localhost httpd-2.4.29]# apachectl -t -D DUMP_MODULES | grep "deflate" //验证模块 deflate_module (shared) [root@localhost httpd-2.4.29]# [root@localhost httpd-2.4.29]# systemctl stop firewalld.service //关闭防火墙 [root@localhost httpd-2.4.29]# setenforce 0 //关闭增强性安全功能 [root@localhost httpd-2.4.29]#
(12)将挂载目录的“picture.jpg”图片复制到Apache服务站点目录“/usr/local/httpd/htdocs/”下,然后将图片添加到首页文件。
[root@localhost httpd-2.4.29]# cd /mnt/tools/ //切换目录 [root@localhost tools]# ls awstats-7.6.tar.gz extundelete-0.2.4.tar.bz2 forbid.png jdk-8u191-windows-x64.zip LAMP-C7 cronolog-1.6.2-14.el7.x86_64.rpm fiddler.exe intellijideahahau2018.rar john-1.8.0.tar.gz picture.jpg [root@localhost tools]# cp picture.jpg /usr/local/httpd/htdocs/ //复制图片 [root@localhost tools]# cd /usr/local/httpd/htdocs/ //切换目录 [root@localhost htdocs]# ls //查看 index.html picture.jpg [root@localhost htdocs]# vim index.html //编辑首页文件It works!
(13)在win10主机安装抓包工具fiddler。
(14)在win10主机访问Apache网站。
(15)查看抓包内容,可以看到Headers里,图片已经被gzip压缩。
通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。
(1)接着上面的实验,缓存模块在配置Apache服务时一起添加了。所以直接对Apache配置文件进行修改。
[root@localhost htdocs]# vim /etc/httpd.conf LoadModule expires_module modules/mod_expires.so //开启缓存模块//尾行添加缓存模块信息 ExpiresActive On //缓存开启 ExpiresDefault "access plus 50 seconds" //缓存时间50秒
(2)检查Apache配置文件格式,格式正确。
[root@localhost htdocs]# apachectl -t Syntax OK [root@localhost htdocs]#
(3)重启服务,查看监听端口
[root@localhost htdocs]# service httpd stop //关闭服务 [root@localhost htdocs]# service httpd start //开启服务 [root@localhost htdocs]# [root@localhost htdocs]# netstat -ntap | grep 80 //检查监听端口 tcp 0 0 192.168.52.133:80 0.0.0.0:* LISTEN 83296/httpd [root@localhost htdocs]#
(4)检查缓存模块是否安装成功。
[root@localhost htdocs]# apachectl -t -D DUMP_MODULES | grep "expires" //验证模块 expires_module (shared) [root@localhost htdocs]#
(5)用win10主机再次访问Apache站点。
(6)查看抓包,Headers里可以看到缓存时间为50秒。
(7)我们将Apache服务配置文件里的缓存时间改为30秒,然后重启服务。
[root@localhost htdocs]# vim /etc/httpd.confExpiresActive On ExpiresDefault "access plus 30 seconds" //将50改为30 [root@localhost htdocs]# service httpd stop //关闭服务 [root@localhost htdocs]# service httpd start //启动服务 [root@localhost htdocs]#
(8)再次用win10主机访问Apache服务站点。
(9)查看抓包,Headers里可以看到缓存时间已经从50秒变为30秒了。
以上是“Apache如何实现网页压缩与缓存”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流