手把手教你,嘴对嘴传达----Apache的访问控制
时间:2022-07-24
本文章向大家介绍手把手教你,嘴对嘴传达----Apache的访问控制,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、Apache连接保持
1、为什么要保持连接
HTTP协议是基于TCP协议之上的,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源。 解决办法是HTTP连接保持。就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。
2、保持连接的方式
Apache连接保持相关参数 KeepAlive 是否打开连接保持,OFF关闭,ON打开 KeepAliveTimeout 一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开 MaxKeepAliveRequests 一次连接能够传输的最大请求数量
二、Apache访问控制
1、Apache访问控制概述
作用 控制对网站资源的访问 为特定的网站目录添加访问授权 常用访问控制方式 客户机地址限制 用户授权限制
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>
...省略内容
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
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>
...省略内容
5、验证
具体代码如下
<VirtualHost 192.168.110.132:80>
DocumentRoot "/var/www/html/shang"
ServerName www.shang.com
Errorlog "logs/www.shang.com.error_log"
Customlog "logs/www.shang.com.custom_log" common
<Directory> "/var/www/html">
<RequireAll>
Require not ip 192.168.110.100
Require all granted
</RequireAll>
</Directory>
</VirtualHost>
# <VirtualHost 192.168.110.200:80>
# DocumentRoot "/var/www/html/zhen"
# ServerName www.zhen.com
# Errorlog "logs/www.zhen.com.error_log"
# Customlog "logs/www.zhen.com.custom_log" common
# <Directory> "/var/www/html">
# Require all granted
# </Directory>
#</VirtualHost>
<VirtualHost 192.168.110.200: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>
- [C#6] 0-概览
- 移植Windows自宿主WCF服务到Linux/Mono2.8
- IISWeb应用防火墙WAF
- WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存)
- 在Windows 7无法通过UNC路径连接到共享文件夹的解决方法
- SQL Sever索引
- 使用SQL Server Management Studio 2008 将数据库里的数据导成脚本
- jquery mobile 移动web(5)
- [C#6] 1-using static
- WordPress 中的 Debug 模式(调试模式)
- Windows Server 2008 R2 Server Core 的 Microsoft .NET Framework 4安装程序
- [C#6] 4-string 插值
- 使用API Key验证WCF Data Service
- WordPress By Example:一个WordPress 主题搜索引擎
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos7下用户登录失败N次后锁定用户禁止登陆的方法
- Linux服务器被黑以后的详细处理步骤
- linux下用户程序同内核通信详解(netlink机制)
- yum安装本地rpm软件方案详解
- CentOS 部署 flask项目的方法
- 在linux服务器下使用版本控制软件SVN的方法
- centos中yum命令删除还原的补救方法介绍
- Linux 创建子进程执行任务的实现方法
- Linux系统下安装jdbc与tomcat的图文教程
- Linux系统下利用C程序输出某进程的内存占用信息
- .NET Standard中配置TargetFrameworks输出多版本类库
- .NET Standard SDK 样式项目中的目标框架
- 偿还技术债(2)-EventBus自己实现一个?
- AkShare-债券数据-收盘收益率曲线
- Vue 项目报错:‘$‘ is not defined ( no-undef )