apache应用详解及优化

本文详细介绍了Apache服务器的优化技巧,包括保持连接、网页压缩、缓存设置、隐藏版本号、防盗链策略、压力测试工具ab的使用、日志分析与访问控制,以及虚拟主机的实现方法。通过这些优化措施,可以提升服务器性能,保障网站的安全性和效率。

案例环境:

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.c     #这个命令的主要目的就是为了生成模块
说明:-i  安装, -c 编译指定模块 -a激活模块(即向httpd.conf添加 LoadModule指令)
chmod 755 /usr/local/httpd/modules/mod_expires.so

3、重启httpd并验证模块是否添加

/etc/init.d/httpd restart
/usr/local/httpd/bin/apachectl -D DUMP_MODULES |grep expires
/usr/local/httpd/bin/apachectl -D DUMP_MODULES |grep deflate

配置项:

vi /usr/local/httpd/conf/httpd.conf              ##在末尾添加如下

<IfModule mod_expires.c>
  ExpiresActive On   							 ##启用页面缓存时间
  ExpiresDefault "access plus 60 seconds"  		 ##设置默认缓存1分钟  
</IfModule>
:wq

/etc/init.d/httpd restart

清除浏览器历史记录,重新访问测试:
在这里插入图片描述


二、apache优化隐藏版本号

方式一:隐藏版本号

vi /usr/local/httpd/conf/extra/httpd-default.conf

ServerTokens Prod   		##显示最少的信息,默认是Full显示完整信息
ServerSignature Off   		##生成页面的页脚

访问测试验证:
在这里插入图片描述
方式二:修改版本号

如果是源代码编译安装,还可以用修改源码编译的方法:进入 Apache 的源码目录下的 include 目录, 编辑 ap_release.h这个文件如下变量,然后重新编译安装即可:

/etc/init.d/httpd stop

vi /usr/src/httpd-2.2.17/include/ap_release.h

     42 #define AP_SERVER_BASEVENDOR "abc"
     43 #define AP_SERVER_BASEPROJECT "abc"
     44 #define AP_SERVER_BASEPRODUCT "abc"
     45 
     46 #define AP_SERVER_MAJORVERSION_NUMBER 6
     47 #define AP_SERVER_MINORVERSION_NUMBER 6
     48 #define AP_SERVER_PATCHLEVEL_NUMBER   6
vi /usr/src/httpd-2.2.17/os/unix/os.h

35 #define PLATFORM "win64"
cd /usr/src/httpd-2.2.17/

make clean &&./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so  --enable-deflate --enable-expires  && make && make install

vi /usr/local/httpd/conf/httpd.conf +53 ##给53行加上注释
在这里插入图片描述
vi /usr/local/httpd/conf/extra/httpd-default.conf
55 ServerTokens Full
65 ServerSignature On

/etc/init.d/httpd start

访问测试验证:
在这里插入图片描述


三、apache优化之防盗链

防盗链:就是防止别人盗取你们公司的图片、文件、视频
作用:防盗链就是防止别人盗用服务器中的图片、文件、视频等相关资源。运维人员可以通过apache提供rewrite模块进行优化。

配置项:

RewriteEngine ON打开网页重写功能
RewriteCond设置匹配规则
RewriteRule设置跳转动作

rewrite的规则:%{HTTP_REFERER} 浏览 header 中的链接字段,存放一个连接的 URL,代表是从哪个链接访问所需的网页。

!^不以某个字段开头
.*$以任意字符结尾
NC不区分大小写
R强制跳转

规则匹配:如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则后面的规则不再继续匹配。

配置实例:
案例:

1.案例环境
需要两台Linux:
linux-1 192.168.1.1 主机名 www.zhen.com 关闭防火墙
linux-2 192.168.1.2 主机名 www.jia.com 关闭防火墙


linux-1:

第一步:安装httpd服务
第二步:
sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf
sed -i 's/www.example.com/www.zhen.com/g' /usr/local/httpd/conf/httpd.conf
第三步:
cat <<END >/usr/local/httpd/htdocs/index.html
<html>
<head><title></title></head>
<body>
<h1>www.zhen.com</h1>
<img src="./linux.jpg" />
</body>
</html>
END
第四步:
将linux.jpg上传到/usr/local/httpd/htdocs/目录里
ls /usr/local/httpd/htdocs/
第五步:
/etc/init.d/httpd restart

vi /etc/hosts
在这里插入图片描述

客户机访问
修改客户机上面的hosts文件,然后保存

C:\Windows\System32\drivers\etc
在这里插入图片描述

访问测试:
在这里插入图片描述


linux-2:

第一步:安装httpd服务
然后: 在这里插入图片描述

第二步:

sed -i '97s/^#//g' /usr/local/httpd/conf/httpd.conf
sed -i 's/www.example.com/www.jia.com/g' /usr/local/httpd/conf/httpd.conf
cat <<END >/usr/local/httpd/htdocs/index.html
<html>
<head><title> </title></head>
<body>
<h1>www.jia.com </h1>
<img src="http://www.zhen.com/linux.jpg" />
</body>
</html>
END
/etc/init.d/httpd start     ##启动服务

vi /etc/hosts
在这里插入图片描述
访问测试:
在这里插入图片描述


为linuxfan网站设置防盗链,防止linuxren网站盗用图片
linux-1:
第一步:

vi /usr/local/httpd/conf/httpd.conf

    132 在<Directory "/usr/local/httpd/htdocs">  区域中,添加:
    138     RewriteEngine On      ##启用重写功能
    139     RewriteCond %{HTTP_REFERER} !^http://linux.com/.*$  [NC]
    140     RewriteCond %{HTTP_REFERER} !^http://linux.com$  [NC]
    141     RewriteCond %{HTTP_REFERER} !^http://www.zhen.com/.*$  [NC]
    142     RewriteCond %{HTTP_REFERER} !^http://www.zhen.com$  [NC]
    143     RewriteRule .*\(gif|jpg|swf\)$  http://www.zhen.com/1.png  [R,NC]
    144 </Directory>

最终匹配结果为:第二、三、四、五行的信任站点,能够使用网站上的图片;处理信任站点以外的站点,如果访问或使用
http://www.zhen.com 域名以外的 gif、 jpg、 swf结尾的文件将跳转到重定向页面

第二步:
将1.png上传到/usr/local/httpd/htdocs/目录里
在这里插入图片描述
第三步:

echo "deny" >>/usr/local/httpd/htdocs/error.html

/etc/init.d/httpd restart      ##重启服务

访问测试:
在这里插入图片描述
在这里插入图片描述


四、apache的ab压力测试

内存   网络    磁盘I/O
       Web    mysql数据库

运维:购买服务器(物理机)

    1、要对所购买的物理机(二手)进行烧机
    2、在产品上线之前,对应用的一个压力测试
    3、对产品本身的压力测试

在这里插入图片描述

作用:Apache 附带了压力测试工具 ab,非常容易使用,并且完全可以模拟各种条件对 Web 服务器发起测试请求。在进行性能调整优化过程中,可用 ab 压力测试工具进行优化效果的测试。
语法:ab -n 请求数总和 -c 并发用户数 网站网址

ab -c 10 -n 100 http://192.168.1.1/
netstat

这行表示同时处理100个请求并运行10次

重要参数:
Time taken for tests		##表示所有这些请求被处理完成所花费的总时间
Failed requests 			##表示失败的请求数量
Requests per second 		##吞吐率,计算公式: Complete requests / Time taken for tests
Transfer rate 				##表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
/usr/local/httpd/bin/ab -n 1000 -c 80 http://192.168.1.1/index.html
拓展:自行百度apache其他性能压力测试工具

五,apache 日志分析工具

https://blog.51cto.com/tywangpanpan/1176447


六、apache访问控制

作用:为apache服务提供的页面设置客户端访问权限,为某个组或者某个用户加密访问

/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/htpasswd aa   ##添加admin用户,可以在两个路径中间添加-c是新建文件删除原文件
New password:   							  	##输入密码 123456
Re-type new password:   					    ##确认密码 123456

cat /usr/local/httpd/conf/htpasswd              ##查看
aa:050o6La.i0hjQ

[root@www htdocs]# /usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/htpasswd  bb
New password:                                   ##输入密码 123456
Re-type new password:         
Adding password for user bb
[root@www htdocs]# /usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/htpasswd  cc 
New password:                                   ##输入密码 123456
Re-type new password: 
Adding password for user cc
vi /usr/local/httpd/conf/htgroups       ##为授权用户加入组 	
mygroup: aa bb                          ##组名: 成员1  成员2
vim /usr/local/httpd/conf/httpd.conf
132 <Directory "/usr/local/httpd/htdocs">
145     AuthType Basic                                  ##定义认证的类型为Basic
146     AuthName "Log analysis system"                  ##提示短语
147     AuthBasicProvider file                          ##提供认证者为file
148     AuthUserFile /usr/local/httpd/conf/htpasswd     ##指定认证用户文件
149     AuthGroupFile /usr/local/httpd/conf/htgroups    ##指定认证组文件
150     Require group mygroup                           ##设置允许访问的用户或者组,如果设置为所有用户改为“Require valid-user”即可,若设置单个用户为Require user 用户名 即可                
151 </Directory>

在这里插入图片描述

/etc/init.d/httpd restart

访问测试:

http://192.168.1.1
输入用户测试,aa与bb能登录
cc不能登录
在这里插入图片描述


七、apache优化之日志分割

作用:随着网站访问量的增加,访问日志中的信息会越来越多, Apache
默认访问日志access_log单个文件会越来越大,日志文件体积越大,信息都在一个文件中,查看及分析信息会及不方便

实现方式:
方式一:
利用 apache 自带的日志轮循程序 rotatelogs日志分割:

ErrorLog "|rotatelogs 命令的绝对路径 -l     logs/error_%Y%m%d_%H%M%S.log 秒数" CustomLog "| rotatelogs 命令  的绝对路径-l logs/access_%Y%m%d_%H%M%S.log 秒数"Combined
vi /usr/local/httpd/conf/httpd.conf 
207     CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d%H%M%S.log 10" common

/etc/init.d/httpd restart

[root@www htdocs]#  ls /usr/local/httpd/logs/
access_log  error_log  httpd.pid

刷新几下网页
在这里插入图片描述
然后再查看日志:
在这里插入图片描述


方式二:
利用一个发展已经比较成熟的日志轮循工具 cronolog

ErrorLog "|cronolog 绝对路径 -l /usr/local/httpd/logs/error_%Y%m%d%H%M%S.log "CustomLog "|cronnolog绝对路径 -l /usr/local/httpd/logs/access_%Y%m%d%H%M%S.log" combined

首先准备软件包 cronolog-1.6.2.tar.gz
把cronolog-1.6.2.tar.gz上传到linux服务器上

tar xf cronolog-1.6.2.tar.gz -C /usr/src/
cd /usr/src/cronolog-1.6.2/
./configure && make && make install
cd
which cronolog

vi /usr/local/httpd/conf/httpd.conf    ##可以跟据文件名中的变量来设置分割的频率,Y表示四位年份、m表示月份、d表示月份中的天数
207     CustomLog "|usr/local/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log" common

ll /usr/local/httpd/logs/

刷新一下网页
在这里插入图片描述
然后再查看日志:
在这里插入图片描述


方式三:
脚本完成(定期移动httpd日志文件,并且保存期限为30天)

vi /opt/cut_httpd_log.sh

#!/bin/bash
logpath="/usr/local/httpd/logs"
datetime=$(date -d "-1 day" "+%Y%m%d")
[ -d $logpath/backup ] || mkdir $logpath/backup
mv $logpath/access_log $logpath/backup/access_log-$datetime
/usr/local/httpd/bin/apachectl graceful       ##重新加载apache的配置,不会中断请求
find $logpath/backup/ -mtime +30 | xargs rm –f
find /usr/local/httpd/logs/backup/ -type f -mtime +30 -exec rm -rf {} \;
chmod +x /opt/cut_httpd_log.sh
echo "00 00 * * * /bin/bash /opt/cut_httpd_log.sh &> /dev/null" >>/var/spool/cron/root

service crond restart

日志合并:

可以将每个服务器每天的日志文件通过 rsync 下载到专门进行访问统计分析的服务器上进行合并。合并多个服务器的日志文件,例如: log1 log2 log3 并输出到 log_all 中的方法是:

sort  -k 4 -o log_all access_log1 access_log2 access_log3

-m 使用 merge 优化算法
-t 指定排序的分割符
-k 4 指定排序时行中多列时,排序的依据列为哪列,表示根据时间进行排序
-o 表示将排序结果存放到指定的文件中


八、apache实现虚拟主机

作用:在同一台服务器实现部署多个网站站点,节省资源;
实现方式:
1.不同IP,不同域名,相同端口;基于IP的虚拟主机
2.相同IP,相同域名,不同端口;基于端口的虚拟主机
3.相同IP,相同端口,不同域名;基于域名的虚拟主机

方式一:不同IP,不同域名,相同端口;基于IP的虚拟主机

1. 假设服务器有个IP地址为192.168.1.1,使用ifconfig在同一个网络接口ens33上绑定3个IP:

[root@localhost ~]# ifconfig ens33:1 192.168.1.11
[root@localhost ~]# ifconfig ens33:2 192.168.1.12
[root@localhost ~]# ifconfig ens33:3 192.168.1.13

在这里插入图片描述
2. 修改hosts文件,添加三个域名与之一一对应:

[root@localhost ~]# vi /etc/hosts
192.168.1.11   www.test1.com
192.168.1.12   www.test2.com
192.168.1.13   www.test3.com

在这里插入图片描述
3. 建立虚拟主机存放网页的根目录,如在/usr/local/httpd/htdocs/目录下建立test1、test2、test3文件夹,其中分别存放index.html、index.html、index.html

[root@localhost ~]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
1.png  error.html  index.html  linux.jpg

[root@localhost htdocs]# rm -rf *
[root@localhost htdocs]# ls

[root@localhost htdocs]# mkdir test1 test2 test3
[root@localhost htdocs]# ls
test1  test2  test3

[root@localhost htdocs]# echo "www.test1.com" >/usr/local/httpd/htdocs/test1/index.html
[root@localhost htdocs]# echo "www.test2.com" >/usr/local/httpd/htdocs/test2/index.html
[root@localhost htdocs]# echo "www.test3.com" >/usr/local/httpd/htdocs/test3/index.html

4. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

vi /usr/local/httpd/conf/httpd.conf
     39 Listen 192.168.1.11:80
     40 Listen 192.168.1.12:80
     41 Listen 192.168.1.13:80
     
    381 Include conf/extra/httpd-vhosts.conf     ##去掉注释
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
     19 NameVirtualHost 192.168.1.11:80
     20 NameVirtualHost 192.168.1.12:80
     21 NameVirtualHost 192.168.1.13:80
     
     29 <VirtualHost 192.168.1.11:80>
     30     DocumentRoot "/usr/local/httpd/htdocs/test1"
     31     ServerName www.test1.com
     32 </VirtualHost>
     33 
     34 <VirtualHost 192.168.1.12:80>
     35     DocumentRoot "/usr/local/httpd/htdocs/test2"
     36     ServerName www.test2.com
     37 </VirtualHost>
     38 
     39 <VirtualHost 192.168.1.13:80>
     40     DocumentRoot "/usr/local/httpd/htdocs/test3"
     41     ServerName www.test3.com
     42 </VirtualHost>

在这里插入图片描述

[root@localhost htdocs]# /etc/init.d/httpd restart
[root@localhost htdocs]# netstat -utpln |grep 80
tcp        0      0 192.168.1.13:80         0.0.0.0:*               LISTEN      1243/httpd          
tcp        0      0 192.168.1.12:80         0.0.0.0:*               LISTEN      1243/httpd          
tcp        0      0 192.168.1.11:80         0.0.0.0:*               LISTEN      1243/httpd

访问测试:
在这里插入图片描述


方式二:相同IP,相同域名,不同端口;基于端口的虚拟主机

vi /usr/local/httpd/conf/httpd.conf

     39 Listen 192.168.1.11:80
     40 Listen 192.168.1.11:8080
     41 Listen 192.168.1.11:8888
    381 Include conf/extra/httpd-vhosts.conf     ##去掉注释   
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

     19 NameVirtualHost 192.168.1.11:80
     20 NameVirtualHost 192.168.1.11:8080
     21 NameVirtualHost 192.168.1.11:8888

     29 <VirtualHost 192.168.1.11:80>
     30     DocumentRoot "/usr/local/httpd/htdocs/test1"
     31     ServerName www.test1.com
     32 </VirtualHost>
     33 
     34 <VirtualHost 192.168.1.11:8080>
     35     DocumentRoot "/usr/local/httpd/htdocs/test2"
     36     ServerName www.test2.com
     37 </VirtualHost>
     38 
     39 <VirtualHost 192.168.1.11:8888>
     40     DocumentRoot "/usr/local/httpd/htdocs/test3"
     41     ServerName www.test3.com
     42 </VirtualHost>  

在这里插入图片描述
访问测试:
在这里插入图片描述


方式三:相同IP,相同端口,不同域名;基于域名的虚拟主机
1. 设置域名映射同一个IP,修改hosts:

vi /etc/hosts

    192.168.1.11   www.test1.com
    192.168.1.11   www.test2.com
    192.168.1.11   www.test3.com

2. 跟上面一样,建立虚拟主机存放网页的根目录

3. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:

vi /usr/local/httpd/conf/httpd.conf 

      39 Listen *:80
     381 Include conf/extra/httpd-vhosts.conf     ##去掉注释       
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

     19 NameVirtualHost *:80
     
     27 <VirtualHost *:80>
     28     DocumentRoot "/usr/local/httpd/htdocs/test1"
     29     ServerName www.test1.com
     30 </VirtualHost>
     31 
     32 <VirtualHost *:80>
     33     DocumentRoot "/usr/local/httpd/htdocs/test2"
     34     ServerName www.test2.com
     35 </VirtualHost>
     36 
     37 <VirtualHost *:80>
     38     DocumentRoot "/usr/local/httpd/htdocs/test3"
     39     ServerName www.test3.com
     40 </VirtualHost>     

在这里插入图片描述

4. 大功告成,测试下每个虚拟主机,分别访问www.test1.com、www.test2.com、www.test3.com
客户机访问:
修改hosts文件 C:\Windows\System32\drivers\etc

在这里插入图片描述
在这里插入图片描述


九、统计访问量

统计日志文件中访问数量最多的10个IP地址:

cat /usr/local/httpd/logs/access_log | awk '{print $1}' |sort -rn|uniq -c|sort -rn|head

在这里插入图片描述
注解:

awk '{ print $1}':取数据的低1域(第1列)
sort:对IP部分进行排序。
uniq -c:统计的是连续重复的 sort
-nr -k1:按照重复行出现的次序倒序排列,-k1以第一列为标准排序。
head:取排在前10位的IP。
PV和UV,一般都是说公司的网站的
UV:指的就是客户端 IP: 指的是公网IP,举个栗子:你和你的家人共同访问百度,IP数是1,UV数是2
PV: 是指页面点击量和浏览量
VV:以统计所有访客1天内访问网站的次数

你们公司的日UV和日PV分别是多少?

PV一定要大于UV,一般情况下pv是uv的三倍

在公司中如何统计PV 和UV
1.根据访问IP统计UV
 
awk '{print $1}'  /usr/local/httpd/logs/access_log|sort | uniq -c |wc -l
 
2.统计访问URL统计PV
 
awk '{print $7}' /usr/local/httpd/logs/access_log|wc -l
 
3.查询访问最频繁的URL
 
awk '{print $7}' /usr/local/httpd/logs/access_log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' /usr/local/httpd/logs/access_log|sort | uniq -c |sort -n -k 1 -r|head -1

Awk默认以空格为分隔符,用-F选项去指定



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张的学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值