前言
- Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源,跨平台,功能模块化,可灵活定制等诸多优点,其不仅性能稳定,在安全性方面的表现也十分出色
一:Apache配置详解
1.1:Apache连接保持
1.1.1:为什么要保持连接
- HTTP协议是基于TCP协议之上的,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源。
- 解决办法是HTTP连接保持。就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。
1.1.2:保持连接的方式
- Apache连接保持相关参数
- KeepAlive
- 是否打开连接保持,OFF关闭,ON打开
- KeepAliveTimeout
- 一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
- MaxKeepAliveRequests
- 一次连接能够传输的最大请求数量
- KeepAlive
1.2:Apache访问控制
1.2.1:Apache访问控制概述
- 作用
- 控制对网站资源的访问
- 为特定的网站目录添加访问授权
- 常用访问控制方式
- 客户机地址限制
- 用户授权限制
1.2.2:基于客户端地址的访问控制
-
使用Require配置项实现访问控制,按先后顺序限制
-
可用,,,配置段中
-
Require配置项的常见语法
Require all granted Require all denied Require local Require [not] host <主机名或域名列表> Require [not] ip <IP地址或网段列表> '//使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中,并在容器中指定相对应的限制策略'
-
举例
[root@localhost ~]# cd /etc/httpd/conf [root@localhost conf]# ls httpd.conf magic [root@localhost conf]# mkdir abc [root@localhost conf]# ls abc httpd.conf magic [root@localhost conf]# cd abc [root@localhost abc]# vim vhost.conf <VirtualHost *:80> ...省略内容 <Directory "/var/www/html"> Require not ip 192.168.100.100 '//表示不允许ip192.168.100.100访问' Require all granted </Directory> </VirtualHost> ...省略内容
1.2.3:用户授权限制–创建用户认证数据库
-
创建用户认证数据库
命令基本格式 '//htpasswd命令是httpd自带的' htpasswd -c /etc/httpd/conf/abc webadmin '//为用户webadmin创建密码文件' New password:'//输入密码' Re-type new password:'//重复输入密码' cat /etc/httpd/conf/abc webadmin:加密密码
举例
[root@localhost abc]# htpasswd -c /etc/httpd/conf/aaa ddd New password: Re-type new password: Adding password for user ddd [root@localhost abc]# cat /etc/httpd/conf/aaa ddd:$apr1$zwIklPGy$ZINaIkXsSq36oIk2lAiiJ1 '//添加第二个用户' [root@localhost abc]# htpasswd /etc/httpd/conf/aaa bbb New password: Re-type new password: Adding password for user bbb [root@localhost abc]# cat /etc/httpd/conf/aaa ddd:$apr1$zwIklPGy$ZINaIkXsSq36oIk2lAiiJ1 bbb:$apr1$q7OdS8z1$ELGg2a1AhHP.QfXJXfQTQ1
1.2.4:用户授权限制–添加用户授权配置
'//配置基本格式'
<Directory "/var/www/html">
AuthName "DocumentRoot" '//受保护的领域名称'
AuthType Basic '//认证类型'
AuthUserFile /etc/httpd/conf/qwe '//用户认证账号文件'
Require valid-user '//要求通过认证才能访问'
</Directory>
举例
[root@localhost abc]# vim vhost.conf
...省略内容
<VirtualHost 192.168.197.100:80>
DocumentRoot "/var/www/html/ccc"
ServerName www.ccc.com
Errorlog "logs/www.ccc.com.error_log"
Customlog "logs/www.ccc.com.custom_log" common
<Directory "/var/www/html">
AuthName "DocumentRoot"
AuthType Basic
AuthUserFile /etc/httpd/conf/aaa
Require valid-user
</Directory>
</VirtualHost>
...省略内容
二:Apache日志管理
2.1:日志分割
- 随着网站的访问量增大,默认情况下Apache的单个日志文件也会越来越大
- 日志文件占用磁盘空间很大
- 查看相关信息不方便
- 对日志文件进行分割
- Apache自带rotatelogs分割工具实现
- 第三方工具cronolog分割<