Apache的默认配置可以保证基本运行服务,但是在生产环境中,有时候需要把服务器性能发挥到最大,此时,需要我们进行深入优化
深入优化包括对服务器进行压力测试,然后对相应数据进行优化,以便充分发挥服务器的作用
ab -n 2000 -c 800 www.test.com/index.html
参数说明:
-n:测试会话所执行的请求总数,默认时仅执行一个请求;
-c :并发产生的请求个数,默认时一个一次;
-t :测试所进行的最大描述
-v :设置显示信息的详细过程
此项实验我们将分别在优化前后进行压测,对比前后结果
虚拟机环境:Centos 7 操作系统
[@localhost ~]# mount.cifs //192.168.181.1/LAMP-C7 /mnt
Password for root@//192.168.181.1/LAMP-C7:
[@localhost ~]# cd /mnt
[root@localhost mnt]# ls
amoeba-mysql-binary-2.2.0.tar.gz Discuz_X2.5_SC_UTF8.zip mha.rar
apr-1.6.2.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz LNMP-C7 php-5.6.11.tar.bz2
awstats-7.6.tar.gz LNMP-C7.rar
cronolog-1.6.2-14.el7.x86_64.rpm mha
[root@localhost mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt
[root@localhost mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
...............省略部分内容
[root@localhost mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt
...............省略部分内容
[root@localhost mnt]# cp dog.jpg /usr/local/httpd/htdocs/
[root@localhost mnt]# cd /opt
[root@localhost opt]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
[root@lamp opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre-devel \
> zlib-devel \
> expat-devel \
> pcre \
> perl
...........省略部分内容
[root@lamp opt]# cd /opt/httpd-2.4.29/
[root@lamp httpd-2.4.29]#./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-deflate \
--enable-expires \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
........省略部分内容
[root@localhost httpd-2.4.29]# make #生产可执行的二进制文件
........省略部分内容
[root@localhost httpd-2.4.29]# make install #复制二进制文件到系统,配置应用环境
........省略部分内容
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/ab /usr/sbin #创建软链接,让httpd的ab命令便于系统管理
[root@localhost bin]# vim /etc/httpd.conf
Listen 192.168.181.129:80 #将监听地址修改为本机地址
#Listen 80 #关闭ipv6监听地址
ServerName www.cats.com:80 #修改域名
---------》wq
[root@localhost bin]# systemctl stop firewalld
[root@localhost bin]# setenforce 0
[root@localhost bin]# ./apachectl start
[root@localhost bin]# cd ..
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html
It works!
"cat.jpg"/>
--------->wq
[root@localhost htdocs]# cd /mnt
[root@localhost mnt]# cp cat.jpg /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
cat.jpg index.html
方式一:安装bind,做正向解析
方式二:指向hosts文件
示例:
[root@localhost htdocs]# echo "192.168.181.129 www.cats.com" >> /etc/hosts
示例:
[root@localhost htdocs]# ab -n 2000 -c 800 www.cats.com/index.html
进行测试5次、平均时间为:22秒
LoadModule headers_ module modules/ mod_ headers. so #默认开启
LoadModule deflate_ module modules/mod_ deflate. so #去掉前面“#”开启deflate模块
LoadModule filter_ module modules/mod_ filter. so #默认开启
#在文尾添加以下内容
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
[root@localhost bin]# ./apachectl -t
Syntax OK
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
[root@localhost htdocs]# ab -n 2000 -c 800 www.cats.com/index.html
示例:
进行测试5次、平均时间为:20秒
因为是临时创建的简易网站、站点中图片资源较少,优化前后的对比不明显,现网环境中,可以使用apache自带的ab测试工具进行测试、检验
后文将介绍apache的三种工作模式及目录属性