Web进阶——Apache(二)

一、Apache 优化

准备工作

主机名操作系统IP地址版本号
ApacheCentOS 7.4192.168.1.1httpd-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

    作者:愿许浪尽天涯原文地址:https://blog.csdn.net/weixin_46902396/article/details/115731072

    %s 个评论

    要回复文章请先登录注册