Apache网页优化
Apache网页优化
网页压缩
网页缓存
Apache安全优化
隐藏版本信息
配置防盗链
Apache网页优化概述
在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容
优化内容
配置网页压缩功能
配置网页缓存
工作模式的选择与参数优化
配置隐藏版本号
配置防盗链
。。。。。。
gzip介绍
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
作用
降低了网络传输的字节数,加快网页加载的速度
节省流量,改善用户的浏览体验
gzip与搜索引擎的抓取工具有着更好的关系
Apache的压缩模块
Apache实现网页压缩的功能模块包括
mod_gzip 模块
mod_deflate 模块
Apache 1.x
没有内奸网页压缩技术,但可使用第三方mod_gzip 模块执行压缩
Apache 2.x
在开发的时候,内建了mod_deflate 这个模块,取代mod_gzip
mod_gzip 模块与mod_deflate 模块
两者均使用gzip压缩算法,运作原理类似
mod_deflate压缩速度略快,而mod_gzip的压缩比略高
mod_gzip对服务器CPU的占用要高一些
高流量的服务器,使用mod_deflate可能会比mod_gzip 加载速度更快
配置网页压缩功能
在配置httpd.conf中配置开启gzip功能
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xmltext/javascript image/png image/jpg image/jpeg application/x-httpd-php application/x-javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
重启Apache服务,再用火狐浏览器访问测试网站
在浏览器中选择”查看元素“可以看到有”Accept-Encoding:gzip“ 表示压缩已经生效
配置网页的缓存时间
通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的
修改httpd.com配置文件
启用mod_expires模块,并设置http协议下任意格式的文档均60秒后过期
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault"access plus 60 seconds"
</IfModule>
重启httpd服务
修改httpd.conf配置文件
启用mod_expires模块,并设置http协议下任意格式的文档均60秒后过期
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
<IfModule>
重启httpd服务
隐藏版本信息
Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
生产坏境中要配置Apache隐藏版本信息
扩展知识
下面是ServerTokens的一些可能的赋值:
ServerTokens Prod 显示”Server:Apache“
ServerTokens Prod显示“Server: Apache”
ServerTokens Major 显示“Server: Apache/2"
ServerTokens Minor显示“Server: Apache/2.2"
ServerTokens Min 显示“Server: Apache/2.2.17"
ServerTokens OS显示“Server: Apache/2.2.17 (Unix)”
ServerTokens Full 显示“Server: Apache/2.2.17 (Unix)PHP/5.3.5”
配置Apache实现防盗链
配置操作演示
修改配置文件启用防盗链功能并设置规则
RewriteEnfine On
RewriteCond %{HTTP_REFERER} !^http://kxr.com/.*$[NC]
安装Apache:
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
装5个依赖包:
yum -y install pcre-devel zlib-devel expat-devel perl
配置网页缓存:
cd httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-cgid --enable-deflate --enable-expires
make && make install
cd
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
添加内容:
#chkconfig: 35 99 22
#description: Apache HTTP Server
保存退出
查看结果
chkconfig --add httpd
chkconfig --list
因为要使用apache很多命令所以创建链接
ln -s /usr/local/httpd/bin/* /usr/bin/
ln -s /usr/local/httpd/conf/httpd.conf /etc/
改域名
vi /etc/httpd.conf
启动deflate
启动apache
检查模块启动
apchectl -D DUMP_MODULES | grep deflate
再添加末尾文件
vi /etc/httpd.conf
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xmltext/javascript image/png image/jpg image/jpeg application/x-httpd-php application/x-javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
记住 检查一下语法
重新启动httpd、查看是否开启
systemctl stop httpd
systemctl start httpd
netstat -anpt | grep httpd
压缩网页缓存 在最后添加配置文件
查看语法
版本隐藏
vi /etc/httpd.conf
Include conf/extra/httpd-default.conf //去掉注释
彻底隐藏
进入httpd里面修改
vi ./include/ap_release.h
#define AP_SERVER_BASEPRODUCT "Apache"
vi ./os/unix/os.sh
#Define PLATFORM"IIS"
改完 重新编译安装Apache
开启重写功能
然后检查语法
重开服务就完成了
防盗链
删除域名配置
cd /usr/local/httpd/htdocs/
ls
rm -rf index.html
编辑配置文件
浏览器上访问
在另一台主机上(192.168.100.200)
安装httpd,配置域名
yum -y install httpd
vi /var/www/html/index.html
systemctl stop firewalld
setenforce 0
systemctl start httpd
![](http://192.169.100.111/1.jpg)
配置Apache实现防盗链
vi /etc/httpd.conf
AllowOverride All
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://192.168.100.111/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://192.168.100.111/* [NC]
RewriteCond %{HTTP_REFERER} !^http://192.168.100.111$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://192.168.100.111/error.png [R,NC]
httpd -t
systemctl stop httpd
systemctl start httpd