apache网页优化
一、Apache网页优化概述
1.概述
1.在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已不适用当今的互联网时代
2.为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容
2.优化内容
配置网页压缩功能
配置网页缓存
工作模式的选择与参数优化
配置隐藏版本号
配置防盗链
…
二.gzip介绍
1.介绍
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
2.作用:
降低了网络传输的字节数,加快网页加载的速度
节省流量,改善用户的浏览体验
gzip与搜索引擎的抓取工具具有更好的关系
三.Apache的压缩模块
1.Apache实现网页压缩的功能模块包括:
mod_gzip模块
mod_deflate模块——系统资源占用率较低
2.Apache 1.x
没有内建网页压缩技术,但可使用第三方mod_gzip 模块执行压缩
3.Apache 2.x
在开发的时候,内建了mod_deflate 这个模块,取代mod_gzip
4.mod_gzip 模块与mod_deflate 模块
1.两者均使用gzip压缩算法,运作原理类似
2.mod_deflate压缩速度略快,而mod_gzip的压缩比略高
3.mod_gzip对服务器CPU的占用要高一些
4.高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快
四.配置网页压缩功能
1.命令详解
1.将三个源码文件添加到/opt目录下,并查看
[] ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
2.解压
[] 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
3.安装编译器和其他工具
yum -y install \
> gcc \
> gcc-c++ \
> make \ //gcc、gcc-c++、make为编译工具
> pcre-devel \ //支持正则表达式的工具
> expat-devel \ //使网站能解析xml标记语言的工具
> perl \ //perl语言工具
> zlib-devel //压缩工具,做网页缓存必须有
4.configure配置
cd httpd-2.4.29/
./configure \
> --prefix=/usr/local/httpd \ //指定路径
> --enable-so \ //开启核心功能模块(Web服务)
> --enable-rewrite \ //开启重写功能,如防盗链保护
> --enable-charset-lite \ //字符集设定
> --enable-cgi \ //开启通用网关接口,它定义了web服务器运行时外部程序的规范
> --enable-deflate //增加压缩模块
5.make编译和make install安装
make && make install
6.配置启动脚本
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd
cd /etc/init.d/
ls
functions httpd netconsole network README
vim httpd
在行首插入下两行内容
#chkconfig: 35 85 21
#description: Apache is a World Wide Web server
chkconfig --add httpd //将httpd加入到service管理器
7.编辑配置文件
vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.25.11:80 //设置ipv4监听地址和端口
#Listen 80 //将ipv6格式的监听端口注释掉
ServerName www.aa.com //设置域名地址
8.设置配置文件的软链接和httpd命令的软链接
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
//设置配置文件的软链接,便于修改(原文件位置太长了)
ln -s /usr/local/httpd/bin/* /usr/local/bin/
//设置httpd命令的软链接
apachectl -t //检查语法是否错误
Syntax OK
9.开启apache服务
iptables -F //清空防火墙规则
setenforce 0 //关闭核心防护
systemctl restart httpd //利用service启动apache服务
netstat -napt |grep 80 //查看httpd 80端口,开启成功
10.检查是否安装了mod_deflate模块
apachectl -D DUMP_MODULES | grep "deflate"
11.配置mod_deflate模块启动
vi /usr/local/httpd/conf/httpd.conf
LoadModule deflate_module/mod_deflate.so //删除注释,启用mod_deflate模块
.在文件末尾加入以下内容
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9 //9代表压缩等级
SetOutputFilter DEFLATE
apachectl -t
12.验证重启
apachectl -D DUMP_MODULES | grep "deflate"
systemctl restart httpd
浏览器舒输入IP地址,使用浏览器抓包工具即可验证。
五.网页缓存
通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率 和次数,达到减少不必要的流量和增加访问速度的目的
1.配置网页缓存
1.新增模块,编译安装
apachectl -D DUMP_MODULES | grep "expires"
cd /opt/httpd-2.4.29/
./configure --enable-expires
make && make install
2.修改配置文件
vi /etc/httpd.conf
LoadModule expires_module modules/mod_expires.so //删除注释,启用mod_deflate模块
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds" //设置http协议下任意格式的文档均60秒后过期,可以自行修改
</IfModule>
配置完之后重启apache生效
六、Apache安全优化
1.隐藏版本信息
作用:一般情况下,软件的漏洞信息和特定的版本是相关的,因此,软件的版本号对攻击者来说是很有价值的,所以我们隐藏Apache的版本号,减少受攻击风险,保护服务器安全运行
配置隐藏版本信息
vi /etc/httpd.conf
Include conf/extra/httpd-default.conf //删除注释
vi /usr/local/httpd/conf/extra/httpd-default.conf
ServerTokens Prod //把Full改成Prod
ServerSignature Off //关闭
systemctl restart apache //重启apache
使用浏览器输入Apache服务器的IP,并使用抓包工具验证。
2.防盗链
配置步骤
vi /var/www/html/index.html
<html><body>this is test web<img src="http://192.168.235.143/dlz.png"/></body></htmll>
使用测试主机访问192.168.235.143,就可以访问到网页,但是这是个盗链网站,访问此站点的同时既盗取了他人源网站的资源,有奖流量导回了源网站,从而造成了他人服务器的负载
apachectl -D DUMP_MODULES | grep "rewrite"
cd /opt/httpd-2.4.29/
./configure --enable-rewrite //开启重写功能,防盗链保护
make && make install //编译安装
修改配置文件
vi /etc/httpd.conf
LoadModule rewrite_module module/mod_rewrite.so //删除注释
AllowOverride All //None改为All
RewriteEngine On
RewriteCond %{HTTP_REFERED} !^192.168.235.143/.*$ [NC]
RewriteCond %{HTTP_REFERED} !^192.168.235.143$ [NC]
RewriteCond %{HTTP_REFERED} !^192.168.235.143/*$ [NC]
RewriteCond %{HTTP_REFERED} !^192.168.235.143/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ 192.168.235.143/error.png [R,NC]
将报错图片放入站点目录
cp /abc/error.png /usr/local/httpd/htdocs/
重启服务