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









498

被折叠的 条评论
为什么被折叠?



