Web进阶——Apache(二)
Web 进阶——Apache(二)
一、Apache 优化
准备工作
主机名 | 操作系统 | IP地址 | 版本号 |
---|---|---|---|
Apache | CentOS 7.4 | 192.168.1.1 | httpd-2.2.17.tar.gz |
1.安装 Apache
[root@Apache ~]#wgethttp://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz[root@Apache ~]#tarzxfhttpd-2.2.17.tar.gz-C/usr/src/[root@Apache ~]#cd/usr/src/httpd-2.2.17/[root@Apachehttpd-2.2.17]#./configure--prefix=/usr/local/httpd&&make&&makeinstall
安装后优化调整
[root@Apachehttpd-2.2.17]#ln-s/usr/local/httpd/bin/*/usr/local/bin/#优化执行路径[root@Apache ~]#httpd-v#查看httpd版本[root@Apache ~]#sed-i'97s/^#//g'/usr/local/httpd/conf/httpd.conf#将#替换为空[root@Apache ~]#cp/usr/local/httpd/bin/apachectl/etc/init.d/httpd#复制启动文件[root@Apache ~]#/etc/init.d/httpdstart#启动httpd服务[root@Apache ~]#netstat-anpt|grep80#查看端口是否开启
2.访问控制
- 作用:为 Apache 服务提供的页面设置客户端访问权限,为某个用户和某个组加密访问。
1)创建授权用户
[root@Apache ~]#htpasswd-c/usr/local/httpd/conf/htpasswdzhangsan[root@Apache ~]#htpasswd/usr/local/httpd/conf/htpasswdlisi[root@Apache ~]#htpasswd/usr/local/httpd/conf/htpasswdwangwu[root@Apache ~]#cat/usr/local/httpd/conf/htpasswd
2)为授权用户加入组
[root@Apache ~]#cat<<END>/usr/local/httpd/conf/htgroupstestgroup:zhangsanwangwuEND
3)配置访问控制
[root@Apache ~]#vim/usr/local/httpd/conf/httpd.conf131<Directory"/usr/local/httpd/htdocs">添加如下:AuthTypeBasic#定义认证的类型为BasicAuthName"Log Analysis System"#提示短语AuthBasicProviderfile#提供认证者为file(文件)AuthUserFile/usr/local/httpd/conf/htpasswd#指定认证用户文件AuthGroupFile/usr/local/httpd/conf/htgroups#指定认证组文件Requiregrouptestgroup#设置1允许访问的用户或者组</Directory>[root@Apache ~]#/etc/init.d/httpdrestart
- 注意:如果设置为所有用户需改为
Require valid-user
即可,若设置单个用户需改为Require user 用户名
即可。
3.日志分割
- 随着网站访问量的增加,访问日志中的信息会越来越多,也就是说当想要查看或者分析时会极不方便。
1)使用 Rotatelogs 进行日志分割
- Rotatelogs 是 Apache 自带的一款日志分割工具。
[root@Apache ~]#vim/usr/local/httpd/conf/httpd.conf将:CustomLog"logs/access_log"common替换为:CustomLog"|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d.log 86400"combined[root@Apache ~]#/etc/init.d/httpdrestart
-l
:表示 local time(本地时间)Y
表示四位年份、m
表示月份、d
表示月份中的天数- 最后的
86400
表示每86400
(也就是一天) 秒后切割一次日志。
访问网站验证:
2)使用 Cronolog 进行日志分割
- Cronolog 是一款发展已经比较成熟的日志分割工具。
[root@Apache ~]#lsanaconda-ks.cfgcronolog-1.6.2.tar.gzhttpd-2.2.17.tar.gz[root@Apache ~]#tarzxfcronolog-1.6.2.tar.gz-C/usr/src/[root@Apache ~]#cd/usr/src/cronolog-1.6.2/[root@Apachecronolog-1.6.2]#./configure&&make&&makeinstall
[root@Apache ~]#whichcronolog/usr/local/sbin/cronolog将:CustomLog"|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/access_%Y%m%d.log 86400"combined替换为:CustomLog"|/usr/local/sbin/cronolog /usr/local/httpd/logs/access_%Y%m%d.log"combined
4.日志合并
- 可以将每个服务器每天的日志文件通过 Rsync 下载到专门进行访问统计分析的服务器上进行合并。
[root@localhost ~]#cd/usr/local/httpd/logs/[root@localhost logs]#sort-k4-oall_logaccess_20210416.logaccess_log[root@localhost logs]#awk'{print $1,$4,$5}'all_log
-k
:指定列进行排序。-o
:将排序结果存放到指定的文件中。
5.统计访问量
统计日志文件中访问数量最多的 10 个IP地址:
[root@localhost ~]#cat<<END>1.txt192.168.1.1AB192.168.1.1AB192.168.1.2192.168.1.4CEND[root@localhost ~]#awk'{print $1}'1.txt|sort-n|uniq-c|sort-n|tail