首页 > 代码库 > Linux -- Apache 的访问及控制
Linux -- Apache 的访问及控制
一,Apache保持连接
http协议是基于tcp协议之上的,在进行http连接之前,要先进行tcp连接,在连接结束后,要对tcp连接进行终止,建立与连接对于http而言会消耗更多的系统资源(cpu,内存)。
尽量的保持客户端的连接,通过一个连接传送多个请求响应,对与客户端来说可以提高50%以上的响应时间,对于服务器来说可以降低资源的开销。
开启额外的配置文件 /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive On 开启保持连接功能
MaxKeepAliveRequests 100 一次连接最大的请求数量
KeepAliveTimeout 5 一次连接多次请求的超时时间
Apache的访问控制
控制对网站资源的访问,为特定网站目录加访问的授权
Order 配置项用与设置限制顺序
Deny from和Allowfrom设置具体限制内容
Order配置项的控制判断顺序
首先判断默认的,然后判断逗号前的,最后判断逗号后的,按顺序叠加得出判断。
用户的授权限制
对网页目录进行认证配置,用户输入用户名和密码才能访问网页,支持摘要认证和基本认证。
基于用户的访问控制包含认证和授权两个过程,认证指识别用户身份过程,授权指允许特定用户访问特定目录区域的过程
httpd的基本认证通过校验用户名,密码组合来判断是否允许用户访问,授权访问的用户需要建立,并保存在固定的数据文件中。
使用专门的htpasswd工具,创建授权用户数据文件,维护其中的用户帐号。
修改虚拟主机配置文件,/usr/local/httpd/conf/extra/httpd-vhosts.conf
AuthName “abcabc” 认证显示名
AuthType Basic 认证类型
AuthUserFile /usr/local/httpd/conf/.abc 认证的密码文件
对于企业内部的WEB管理平台,例如日志分析系统(Awstats)为了更好实现访问控制,在通过客户端访问时,提交一些用户密码或对客户IP地址进行授权,避免服务器的安全隐患。
- 常见的访问控制方式:应用于配置文件中的目录区域
<Directory>......</Directory>
一、Apache 的访问控制
对于企业内部的WEB管理平台,例如日志分析系统(Awstats)为了更好实现访问控制,在通过客户端访问时,提交一些用户密码或对客户IP地址进行授权,避免服务器的安全隐患。
httpd 服务的访问控制:控制对网站资源的访问
为特定的网站资源目录添加访问授权
常用的访问控制方式:1、客户机地址限制
2、用户授权限制
1、客户机地址限制
Order 用来定义访问控制顺序
Allow from 地址 #允许某些地址访问
Deny from 地址 #拒绝某些地址访问
地址类型:IP地址 网络地址 主机名 域名 all(表示所有) 多个地址之间使用空格分割 格式1:
Order deny,allow #先拒绝,后允许
Deny from all #拒绝所有
格式2:
Order allow,deny #先允许,后拒绝
Allow from all #允许所有
2、创建用户认证数据库文件
/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/.a a
New password: //根据提示填写密码
Re-type new password: //根据提示填写密码
Adding password for user a
.a 认证的用户数据文件(是隐藏文件)
a 创建的用户
查看认证文件
注意:只有在第一次创建文件时使用 -c 后期 添加用户时不能使用,否则前期创建的用户将会消失。在文件中再次添加新用户。命令如下
/usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/.a ts111
新用户已经添加完成
(2)编辑httpd主配置文件
在113行加入以下内容
144 AuthName "http web"
145 AuthType Basic
146 AuthUserFile /usr/local/httpd/conf/.a
147 require valid-user
在次访问网页。输入用户名和密码即可访问
二、Apache 日志管理
日志切割
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.3.10 #修改为主机的IP。
加入以下内容
<Directory "/kingctl">
Order allow,deny
Allow from all
</Directory>
<VirtualHost 192.168.3.10>
DocumentRoot /kingctl/
ServerName www.kingctl.com
ErrorLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/www.kingctl.com.error_%Y%m%d.log 86400"
CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/www.kingctl.com.access_%Y%m%d.log 86400" common
</VirtualHost>
验证
cd /usr/local/httpd/logs/
[root@CentOS6-node1 logs]# ls
access_log error_log httpd.pid www.kingctl.com.access_20161231 www.kingctl.com.error_20161231.log
日志切割成功
Linux -- Apache 的访问及控制