您好,登录后才能下订单哦!
网站的访问速度是由多个因素所共同决定的包括:
1)应用程序的响应速度
2)网络带宽
3)服务器性能
4)与客户端之间的网络传输速度等等
其中最重要的就是Apache本身的响应速度,因此提升网站性能第一个需要着手进行处理的便是尽可能地提升Apache的执行速度,使用网页压缩可以提升应用程序的速度,而且不需要任何成本.
Apache2.x内建了mod_deflate这个模块,使用gzip压缩算法。mod_deflate可使用DeflateCompressionLevel指令来设置压缩级别。该指令的值可为1至(压缩速度最快,压缩质量最低)9(压缩速度最慢,压缩质量最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)
yum –y remove httpd #编译安装前将系统自带的httpd删掉
tar xzvf httpd-2.4.2.tar.gz -C /opt #解压源码包
tar xzvf apr-util-1.4.1.tar.gz -C /opt #解压依赖包
tar xzvf apr-1.4.6.tar.gz -C /opt #解压依赖包,支持apache上层应用跨平台,提供底层接口库,有效缓解并发连接进程数
cp -R apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util
cp -R apr-1.4.6/ httpd-2.4.2/srclib/apr-util
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel #安装组件包 构建编译环境
cd httpd-2.4.2/ #进入到httpd目录下进行配置,编译安装
./configure \
--prefix=/usr/local/httpd \ #指定httpd安装目录
--enable-deflate \ #加入mod_deflate模块
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install #进行编译安装
cd /uar/local/httpd
grep -v "#" bin/apachectl >/etc/init.d/httpd #优化启动方式,可以使用service命令管理apache服务
vim /etc/init.d/httpd
#!/bin/bash
#chkconfig:2345 85 35 #在apache启动脚本里加入必要注释
#description:Apache is a web server
chmod 755 /etc/init.d/httpd
chkconfig --add httpd #设置apache服务开机自启
chkconfig httpd on
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf #在/etc目录下生成一个apache主配置文件的链接,方便管理。
vim /etc/httpd.conf
vim /etc/named.conf
vim /etc/named.rfc1912.zones
service named start
可以修改apache站点首页内容,加入图片信息,
vim /usr/local/httpd/htdocs/index.html
使用浏览器输 入www.benet.com访问网页,然后使用抓包工具Fiddler进行抓包,
在没启用mod_deflate模块之前显示内容未进行压缩
编译安装完成后,mod_deflate模块需要在httpd.conf文件里启用才能生效
vim /etc/httpd.conf
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so #开启模块服务
LoadModule deflate_module modules/mod_deflate.so
在httpd.conf配置文件末尾,加入mod_deflate的配置项。
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript #第一行代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9 #第二行代表压缩级别
SetOutputFilter DEFLATE #第三行代表启用deflate模块压对本站点的输出进行gzip压缩
</IfModule>
配置文件修改完成之后可以检测是否启用mod_deflate模块,然后启动apache服务
cd /usr/local/httpd/bin
./apachectl –t –D DUMP_MODULES | grep “deflate”
service httpd start
打开Fiddler抓包工具,用浏览器访问Apache服务器的页面,可以看到响应头中包含有Content-Encoding:gzip,表示压缩已经生效
网页缓存是将一部分经常不会改变或变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度。
Apache的mod_exprices模块会自动生成页面头部信息中的Express标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。
配置mod_exprices模块的步骤与mod_deflate模块相似。
在启用mod_exprices模块功能之前,可以打开浏览器输入www.benet.com访问网页,使用Fiddler抓包工具先抓取数据包,查看是否缓存设置expires项,可以和启用mod_exprices模块之后进行对比
以刚才安装的apache源码包为基础,首先关闭apache服务,加入mod_exprices模块重新进行编译安装
service htted stop
cd /opt/httpd-2.4.2/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \ # 加入mod_deflate模块
--enable-expires \ #加入mod_exprices模块
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
Make && make install #编译安装
vim /etc/httpd.conf
LoadModule expires_module modules/mod_expires.so #开启mod_exprices模块
在httpd.conf末尾添加mod_exprices模块设置项
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds" #添加缓存时间60秒
</IfModule>
然后重新启动apache服务
service httpd restart
打开Fiddler抓包工具,用浏览器访问Apache服务器的页面,可以看到响应头中包含有expires项,说明缓存已经在工作
准备环境:
1)客户端使用Windows系统,IP地址192.168.30.100 搭建盗链网站www.test.com
2)源主机redhat6.5系统,IP地址192.168.30.15 搭建源网站www.benet.com
开启internet信息服务管理器
打开IIS,进行站点设定
新建一个文件,编写html格式,将图片信息指向源主机,并将文件格式修改为html格式,放入站点wwwroot
在hosts文件中加入映射关系
在浏览器中分别输入www.benet.com,www.test.com进行访问,可以看到图片内容没有差异,
使用Fiddler抓包工具抓取数据,可以看到先对www.test.com请求,然后对www.benet.com/abc.jpg请求,说明盗链成功
如果没有安装mod_rewrite模块,需要停止apache服务,重新编译安装,在参数中加入mod_rewrite模块。
cd httpd-2.4.2/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \ #加入mod_rewrite模块
--enable-charset-lite \
--enable-cgi
Make && make install
vim /etc/httpd.conf
在站点目录结尾加入rewrite设定
<Directory "/usr/local/httpd/htdocs">
………………………………………………..
RewriteEngine On
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
</Directory >
重新启动apache服务
清除浏览器的缓存,避免从本地读取缓存内容,将error.png这个图片移动到站点目录/usr/local/httpd/htdocs ,再次访问网站,如下图所示
修改httpd.conf配置文件,使httpd-default.conf文件生效,它里面包含了是否返回版本信息的内容。
然后修改httpd-default.conf文件
重新启动apache服务,再次访问网页,使用Fiddler抓包工具抓取数据包,可以看到版本信息已经隐藏。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。