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

开发笔记:Apache网页优化

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Apache网页优化相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Apache网页优化相关的知识,希望对你有一定的参考价值。



Apache网页优化概述

1、在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认
配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代;
2、为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化
的内容;
3、优化内容
配置网页压缩功能
配置网页缓存
工作模式的选择与参数优化
配置隐藏版本号
配置防盗链

gzip 介绍

1、配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到
客户端浏览器;
2、作用
降低了网络传输的字节数,加快网页加载的速度
节省流量,改善用户的浏览体验
gzip与搜索引擎的抓取具有着更好的关系
mod_gzip模块与mod_deflate模块
两者均使用gzip压缩算法,运作原理类似
mod_deflate压缩速度略快, 而mod_gzip的压缩比略高
mod_gzip对服务器CPU的占用要高一些高流量的服务器,使用mod_deflate可能会比mod_gzip 加载速度更快
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的
内容。

网页压缩

1.检查是否安装mod_deflate模块


apachectl -t -D DUMP MODULES | grep "deflate"

Apache网页优化_Apache

2.如果没有安装mod_ deflate 模块,重新编译安装Apache添加mod_ deflate模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \\
--prefix=/usr/local/httpd \\
--enable-so \\
-enable-rewrite \\
-enable-charset-lite \\
--enable-cgi \\
--enable-deflate #加入mod_deflate 模块
make && make install



Apache网页优化_apache_02

Apache网页优化_防盗链_03

Apache网页优化_Apache

3.配置mod_deflate模块启用

vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.168.163.6:80
--105行--取消注释
LoadModule deflate_module modules/mod deflate.so #开启mod_deflate模块
--197行--取消注释,修改
ServerName www.kgc.com:80
--末行添加--

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/Javascript text/jpg text/png
#代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9 #代表压缩级别,范围为1~9
SetOutputFilter DEFLATE #代表启用deflate 模块对本站点的输出进行gzip压缩

Apache网页优化_网页缓存优化_05

Apache网页优化_Apache

Apache网页优化_Apache

4.检查安装情况,启动服务

apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "deflate" #检查mod_deflate模块是否已安装
deflate_module (shared) #已安装的正确结果
systemctl start httpd.service

Apache网页优化_网页压缩优化_08

5.测试mod_deflate 压缩是否生效

cd /usr/local/httpd/htdocs
先将game.jpg文件传到/usr/local/httpd/htdocs目录下
vim /usr/local/httpd/htdocs/index.html

src="1.5-4.png"/>


Apache网页优化_apache_09

Apache网页优化_防盗链_10Apache网页优化_apache_11

配置网页的缓存时间

1、通过mod_expire模块配置 Apache,使网页能在客户端浏览器缓存一段时间, 以避
免重复请求;
2、启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control
标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面不需要向
服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和
增加访问速度的目的。

网页缓存

1.检查是否安装mod_expires模块

apachectl -t -D DUMP_MODULES | grep "expires"

2.如果没有安装mod_expires 模块,重新编译安装Apache添加mod_expires模块

systemctl stop httpd. service
cd /usr/loca1/httpd/conf
mv httpd.conf httpd.conf.bak2
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \\
--prefix=/usr/local/httpd \\
--enable-so \\
--enable-rewrite \\
--enable-charset-lite \\
--enable-cgi \\
--enable-deflate \\
--enable-expires #加入mod_expires模块
make && make install

Apache网页优化_Apache

Apache网页优化_网页压缩优化_13

Apache网页优化_Apache

3.配置mod_expires 模块启用

vim /usr/local/httpd/conf/httpd.conf
-- 52行--修改
Listen 192.198.163.6:80
--111行--取消注释
LoadModule expires_ module modules/mod_expires.so #开启mod_expires 模块
--199行--取消注释,修改
ServerName www.kgc.com:80
--末行添加--

ExpiresActive On #打开网页缓存功能
ExpiresDefault "access plus 60 seconds" #设置缓存60秒


Apache网页优化_防盗链_15

Apache网页优化_Apache

Apache网页优化_网页压缩优化_17

Apache网页优化_防盗链_18

4.检查安装情况,启动服务

apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires" #检查mod_expires模块是否已安装
expires_module (shared) #已安装的正确结果
systemctl start httpd.service

Apache网页优化_Apache

5.验证缓存情况

Apache网页优化_网页压缩优化_20

Apache网页优化_Apache

配置Apache隐藏版本信息

1、将主配置文件httpd.conf以下行注释去掉
#Include conf/extra/httpd-default.conf
2、修改httpd-default.conf文件
ServerTokens Full 修改为Server Tokens Prod
重启httpd服务,访问验证


Apache网页优化_网页压缩优化_22

Apache网页优化_网页压缩优化_23

验证:

方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素
选择网络---> 选择HTML、WS、其他
访问http://192.168.80.10 ,双击200消息查看响应头中包含Expires项
方法二:
在Windows系统中依次安装Microsoft . NET4和fiddler 软件,打开fiddler软件
选择inspectors ---> 选择Headers
浏览器访问http://192.168.80.10 ,双击200消息查看Expires项


Apache网页优化_apache_24

防盗链概述:

1、防盗链是防止别人的网站代码里面盗用我们自己服务器上的图片、文件、视频等相关资源
2、如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
3、作为网站的维护人员,要杜绝服务器的静态资源被其他网站盗用

模拟防盗链实验

1.检查是否安装mod rewrite 模块

apachectl -t -D DUMP_MODULES | grep "rewrite"


2.如果没有安装mod_rewrite 模块,重新编译安装Apache添加mod_rewrite模块

systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel
cd /opt/httpd-2.4.29/
./configure \\
--prefix=/usr/local/httpd \\
--enable-so \\
--enable-rewrite \\ #加入mod_rewrite 模块
--enable-charset-lite \\
--enable-cgi \\
--enable-deflate \\
--enable-expires
make && make install


3.配置mod_ rewrite 模块启用

vim /usr/local/httpd/conf/httpd.conf
--157行--取消注释
LoadModule rewrite_module modules/mod_rewrite.so
--224行--
"/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
RewriteEngine On #打开rewrite 功能,加入mode_rewrite 模块内容
RewriteCond %HTTP_REFERER !^http://benet.com/.*$ [NC] #设置匹配规则
RewriteCond %HTTP_REFERER !^http://benet.com$ [NC]
RewriteCond %HTTP_REFERER !^http://www.benet.com/.*$ [NC]
RewriteCond %HTTP_REFERER !^http://www.benet.com/$ [NC]
RewriteRule .*\\.(gif|jpg|swf)$ http://www.benet.com/error.png #设置跳转动作

解释:
RewriteCond %HTTP_REFERER !^http://www.kgc.com/.*$ [NC] 的字段含义:
“%HTTP REFERER”:存放一个链接的URL,表示从哪个链接访问所需的网页。
“!^”: 表示不以后面的字符串开头。
"http://www.kgc.com" : 是本网站的路径,按整个字符串匹配。
“.*$” : 表示以任意字符结尾。
“[NC]”: 表示不区分大小写字母。
RewriteRule .*\\.(gif|jpg|swf)$ http://www.kgc.com/error.png的字段含义:
".": 表示匹配一个字符。
"*":表示匹配0 到多个字符,与“.”合起来的意思是匹配0到多次前面的任意字符,如果是1到多次匹配可以用“+”表示。
“\\.”: 在这里的“\\“是转义符,"\\." 就代表符号“.”的意思。因为“. ”在指令中是属于规则字符,有相应的含义,
如果需要匹配,需要在前而加个转义符"\\”,其它规则字符如果需要匹配,也做同样处理。
“(gif|jpg|swf)”: 表示匹配“gif”、“jpg”、"swf"任意一个, “$”表示结束。最后的规则是以“.gif"".jpg"".swf”结尾,
前面是1到多个字符的字符串,也就是匹配图片类型的文件。
"http://www.kgc.com/error.png”:表示转发到这个路径。

Apache网页优化_防盗链_25

Apache网页优化_apache_26

Apache网页优化_Apache

4.网页准备

Web源主机配置: .
cd /usr/1ocal/httpd/htdocs
将game.jpg、error.png文件传到/usr/local/httpd/htdocs目录下
vim index.html

this is benet.com!


src="1.5-4.png"/>

echo "192.168.163.6 www.benet.com" >> /etc/hosts
echo "192.168.163.7 www.accp.com" >> /etc/hosts
盗链网站主机:
cd /usr/local/httpd/htdocs
#yum安装的httpd服务的默认路径为/var/www/html/
vim index.html

this is accp.com!


src= "http://www.benet.com/1.5-4.jpg"/>

echo "192.168.163.6 www.benet.com" >> /etc/hosts
echo "192.168.163.7 www.accp.com" >> /etc/hosts


Apache网页优化_apache_09

Apache网页优化_网页缓存优化_29

5.在盗图网站主机上进行浏览器验证

http://www.benet.com

Apache网页优化_Apache






推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
author-avatar
gaoyong0713
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有