案例环境:
1.准备环境,上传软件包,并解压编译安装
rpm -e httpd --nodeps
wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz
tar zxvf httpd-2.2.17.tar.gz -C /usr/src/
cd /usr/src/httpd-2.2.17/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi && make &&make install
注意:如果编译安装失败,可以安装一下gcc环境,然后再次编译安装
yum -y install gcc*
2.安装后优化调整
ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##优化执行命令的路径
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
chmod a+x /etc/init.d/httpd
3.启动服务
/etc/init.d/httpd start
一、apache优化之保持连接、网页传输压缩、页面缓存时间
1.保持连接、长链接(keep-alive):
作用:HTTP协议是TCP的子协议,HTTP建立连接时需要先建立TCP连接,断开时也需要断开口TCP连接,TCP的建立和断开消耗的资源通过HTTP连接保持可以节约下来。对于 HTTP/1.1,尽量地保持客户端的TCP连接,通过一个TCP连接传送多个 HTTP请求响应,对于客户端可以提高 50%以上的响应时间,对于服务器可以降低建立与关闭TCP连接时的资源消耗。
为什么打开长连接能够加快客户端的访问速度?
开启apache服务端的长连接之后,当客户端请求完成之后,负责返回给客户端数据的进程并不会直接退出,而是等待下一个请求的到来,这样做的主要目的是减少了tcp的三次握手
配置项:
keepalive ON/OFF | 是否打开保持连接功能。根据网站的并发请求量决定是否打开,高并发时打开,并发量不高时可选择关闭 |
---|---|
keepalive timeout | 一次TCP连接多次HTTP请求之间的最大间隔时间,两次HTTP请求超过此时间连接将会断开 |
maxkeepaliverequestes | 一次TCP连接能够传输的最大HTTP请求数量 |
1)修改/usr/local/httpd/conf/extra/httpd-default.conf
内容
vi /usr/local/httpd/conf/extra/httpd-default.conf
16 KeepAlive On
23 MaxKeepAliveRequests 100
29 KeepAliveTimeout 20
:wq
2)如何打开长连接?
sed -n '/httpd-default.conf/p' /usr/local/httpd/conf/httpd.conf ##查看
sed -i '/httpd-default.conf/s/^#//g' /usr/local/httpd/conf/httpd.conf ##去除注释
sed -n '/httpd-default.conf/p' /usr/local/httpd/conf/httpd.conf ##查看验证
sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf ##去掉注释
sed -i 's/www.example.com/www.linux.com/g' /usr/local/httpd/conf/httpd.conf ##修改域名
hostname www.linux.com ##修改主机名
bash ##让主机名立即生效
/usr/local/httpd/bin/apachectl start ##启动服务
客户机访问
修改客户机上面的hosts文件,然后保存
C:\Windows\System32\drivers\etc
服务器访问
curl -i www.linux.com ##域名访问
curl -i 192.168.1.1 ##IP访问
安装抓包工具
下载地址 https://www.telerik.com/fiddler
访问抓包验证:
2. apache网页压缩:
客户端在请求httpd服务器数据,httpd服务器在返回数据包给客户端时,先对返回的数据进行压缩,压缩之后再传输
作用:配置 Apache 的网页压缩功能,是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行压缩后再传输到客户端浏览器。通常在cpu有空闲,网站带宽占用高时,会启用压缩
优势:
1)加快网页加载的速度,改善用户的浏览体验
2)降低网络传输带宽, 服务器节省流量
3)网页压缩有利于搜索引擎的抓取
方式:Apache 能实现网页压缩功能的模块有
mod_gzip
模块和mod_deflate
模块
注意:编译安装时需要使用以下配置项;
--enable-deflate
##启用deflate
模块,注意必须安装依赖包“zlib-devel
”yum -y install zlib-devel
配置项:
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript | 对什么格式的内容启用压缩 |
---|---|
DeflateCompressionLevel 9 | 压缩级别为9,范围是1-9,数字大压缩率高 |
SetOutputFilter DEFLATE | 启用deflate压缩方式 |
向已经编译好的httpd添加模块:
方法一 1、重新配置编译httpd,在配置httpd的时候启用模块功能
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi --enable-deflate
2、然后再运行编译
make clean && make && make install
/usr/local/httpd/bin/apachectl -D DUMP_MODULES |grep deflate ##查看
vi /usr/local/httpd/conf/httpd.conf ##在末尾添加如下配置
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
:wq
/usr/local/httpd/bin/apachectl start
/etc/init.d/httpd restart
访问并抓包验证:
3.apache页面缓存时间:
作用:通过
mod_expires
模块配置 Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求,减轻服务端工作压力。启用mod_expires
模块后,会自动生成页面头部信息中的 Expires 标签和 CacheControl标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。
注意:编译安装时必须使用以下配置项--enable-expires
##启用网页缓存过期时间模块
向已经编译好的httpd添加模块:方法二
1、先进入mod_deflate.c文件所在目录:
cd /usr/src/httpd-2.2.17/modules/metadata
2、利用apxs文件编译目标模块
apxs -i -c -a mod_expires.