Apache配置与应用
一、连接保持
[root@server1 ~]#vi /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive On //是否开启连接保持功能
MaxKeepAliveRequests 100 //一次最多请求100个文件
KeepAliveTimeout 5 //超过5秒钟断开
[root@server1 ~]#vi /usr/local/httpd/conf/httpd.conf
#Various default settings
#Include conf/extra/httpd-default.conf //要把#去掉
先关闭再重新开启才可以查到80端口
[root@server1 ~]#systemctl stop httpd
[root@server1 ~]#systemctl start httpd
[root@server1 ~]#netstat -anpt | grep httpd
tcp6 0 0 :::80 :::* LISTEN 56973/httpd
[root@server1 ~]#curl http://192.168.188.10
<h1>this is good</h1>
二、配置访问控制
[root@server1 logs]#vi /usr/local/httpd/conf/httpd.conf //对htdocs目录设置控制,新增两行
Order deny,allow
Deny from 192.168.188.1/32
[root@server1 logs]#systemctl stop httpd
[root@server1 logs]#systemctl start httpd
[root@server1 logs]#netstat -anpt | grep httpd
tcp6 0 0 :::80 :::* LISTEN 96210/httpd
2、第二种拒绝指定ip访问
[root@server1 logs]#vi /usr/local/httpd/conf/httpd.conf
<RequireAll>
Require all granted
Require not ip 192.168.188.1/32 //拒绝指定IP
</RequireAll>
[root@server1 logs]#systemctl stop httpd
[root@server1 logs]#systemctl start httpd
Apache访问控制
作用
1、控制对网站资源的访问
2、为特定的网站目录添加访问授权
常用访问控制方式
配置访问控制
Require all granted:允许所有主机访问
Require all denied:拒绝所有主机访问
Require local:仅允许本地主机访问
Require [not] host <主机名或域名列表>:允许或拒绝指定主机或域名访问;
Require [not] ip <IP地址或网段列表>:允许或拒绝指定IP地址网络访问;
用户访问授权
[root@server1 ~]#htpasswd -c /usr/local/httpd/conf/.awspwd tom //.xxx 带.的是隐藏文件 用户名是tom
New password: //123123
Re-type new password: //123123
Adding password for user tom
[root@server1 ~]#cat /usr/local/httpd/conf/.awspwd
tom:$apr1$TFaDl53j$7piQrgPGOlqDWF3e73jXp0 //密文
[root@server1 ~]#vi /etc/httpd.conf
Order allow,deny
Allow from all
AuthName "www.aa.com"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
Require valid-user
[root@server1 ~]#systemctl restart httpd
[root@server1 ~]#netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 97614/httpd
[root@server1 ~]#vi /etc/hosts
tom
123123
日志分割
随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大
1、日志文件占用磁盘空间很大
2、查看相关信息不方便
查看日志
[root@server1 ~]#cd /usr/local/httpd/logs/
[root@server1 logs]#ls -lh
总用量 12K
-rw-r--r-- 1 root root 2.0K 11月 25 14:04 access_log //访问日志
-rw-r--r-- 1 root root 1.1K 11月 25 13:58 error_log //错误日志
-rw-r--r-- 1 root root 6 11月 25 13:58 httpd.pid
[root@server1 logs]#
date "+%Y%m%d" //获取当天日期
date -d "-1 day" //前天
date -d "day" //明天
tar zcvf a.tar-$(date +%F).gz /var/log/
对/var/log日志文件进行备份,备份带上当天的时间戳
tar zcvf a.tar-`date +%Y%m%d`.gz /var/log/
三、1、1配置日志分隔(错误访问)
[root@server1 ~]#vi /etc/httpd.conf
ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400" //通过管道把日志交给rotatelogs工具-l 指使用本地时间86400表示日志分隔的间隔为1天 单位是秒
[root@server1 ~]#systemctl stop httpd
[root@server1 ~]#systemctl start httpd
[root@server1 ~]#cd /usr/local/httpd/logs/
[root@server1 logs]#ls -lh
总用量 36K
-rw-r--r-- 1 root root 9.9K 11月 25 22:36 access_log
-rw-r--r-- 1 root root 15K 11月 25 22:35 error_log
-rw-r--r-- 1 root root 868 11月 25 22:36 error_log_2020-11-25
-rw-r--r-- 1 root root 7 11月 25 22:35 httpd.pid
[root@server1 logs]#
三1、2配置日志分隔(正确访问)
[root@server1 logs]#vi /etc/httpd.conf
CustomLog "|/usr/bin/rotatelogs -l logs/access_log_%Y%m%d 86400" common
[root@server1 logs]#systemctl stop httpd
[root@server1 logs]#systemctl start httpd
[root@server1 logs]#cd /usr/local/httpd/logs/
[root@server1 logs]#ls -lh
[root@server1 logs]#ls -lh
[root@server1 logs]#ls -lh
总用量 956K
-rw-r--r-- 1 root root 384 11月 25 22:57 access_log
-rw-r--r-- 1 root root 901 11月 25 23:15 access_log_20201125
-rw-r--r-- 1 root root 824 11月 25 22:56 error_log
-rw-r--r-- 1 root root 939K 11月 25 23:14 error_log_2020-11-25
-rw-r--r-- 1 root root 6 11月 25 23:14 httpd.pid
四、用cronolog进行日志分隔
[root@server1 ~]#tar xzvf cronolog-1.6.2.tar.gz
[root@server1 ~]#cd cronolog-1.6.2/
[root@server1 cronolog-1.6.2]#./configure
[root@server1 cronolog-1.6.2]#make && make install
[root@server1 cronolog-1.6.2]#cd
[root@server1 ~]#which cronolog
/usr/local/sbin/cronolog
[root@server1 ~]#vi /etc/httpd.conf
ErrorLog "|/usr/local/sbin/cronolog logs/error.log_%Y-%m-%d"
CustomLog "|/usr/local/sbin/cronolog logs/access.log_%Y%m%d" common
[root@server1 ~]#cd /usr/local/httpd/logs/
[root@server1 logs]#ls -lh
总用量 1.1M
-rw-r--r-- 1 root root 384 11月 25 22:57 access_log
-rw-r--r-- 1 root root 901 11月 25 23:15 access_log_20201125
-rw-r--r-- 1 root root 131K 11月 25 23:21 cronolog-1.6.2.tar.gz
-rw-r--r-- 1 root root 824 11月 25 22:56 error_log
-rw-r--r-- 1 root root 939K 11月 25 23:14 error_log_2020-11-25
-rw-r--r-- 1 root root 6 11月 25 23:14 httpd.pid
[root@server1 logs]#rm f access_log_*
rm: 无法删除"f": 没有那个文件或目录
rm:是否删除普通文件 "access_log_20201125"?y
[root@server1 logs]#rm f error_log_*
rm: 无法删除"f": 没有那个文件或目录
rm:是否删除普通文件 "error_log_2020-11-25"?y
[root@server1 logs]#ls -lh
总用量 144K
-rw-r--r-- 1 root root 384 11月 25 22:57 access_log
-rw-r--r-- 1 root root 131K 11月 25 23:21 cronolog-1.6.2.tar.gz
-rw-r--r-- 1 root root 824 11月 25 22:56 error_log
-rw-r--r-- 1 root root 6 11月 25 23:14 httpd.pid
[root@server1 logs]#systemctl stop httpd
[root@server1 logs]#systemctl start httpd
[root@server1 logs]#netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 98701/httpd
[root@server1 logs]#
进虚拟机http://192.168.188.10
[root@server1 logs]#ls -lh
总用量 152K
-rw-r--r-- 1 root root 384 11月 25 22:57 access_log
-rw-r--r-- 1 root root 240 11月 25 23:41 access.log_20201125
-rw-r--r-- 1 root root 131K 11月 25 23:21 cronolog-1.6.2.tar.gz
-rw-r--r-- 1 root root 824 11月 25 22:56 error_log
-rw-r--r-- 1 root root 288 11月 25 23:39 error.log_2020-11-25
-rw-r--r-- 1 root root 6 11月 25 23:39 httpd.pid
[root@server1 logs]#