Apache
主要优点
开放源代码 跨平台 支持多种网页语言
模块化设计,运行稳定,安全性好
通过yum库安装apache服务器 yum -y install httpd
可以看到 htpd 服务开启的是TCP的80端口
打开httpd的服务配置
httpd配置构成
目录设置
<Directory目录> </Directory>
访问路径设置
<Location URL> ..... </Location>
虚拟主机设置
<VirturlHost 监听地址>......</VirtualHost>
常用的全局设置参数
ServerName :本站点的FQDN名称 完全合格域名/全称域名 是指主机名加上全路径
DocumentRoot 网页文档的根目录
DirectoryIndex 默认索引页/首页文件
Include:可包含其他子配置文件
===========================================================
常用的全局设置参数
Listen 监听服务的IP地址,端口号
User服务进程的属主 默认为apache
ErrotLog:错误日志文件的位置
Customlog:访问日志文件的位置
目录别名
可以通过别名调用网站根目录以外的其他文件夹
通过Alias关键字使用别名
比如说一下设置 (以上已经把根目录更改为/var/test)
Alias /ff “/ff”
其中非双引号中的/代表以http目录为相对的跟路径
我们在 /var/test/fuck 写下index.php 内容为this is inside of apache
我们在/fuck目录下写下同样index.php 内容为this is outside of apache
我们访问 192.168.0.11/ff查看结果
也就是说定义别名后我们访问Alias 的对应的别名时 访问的不是在apache根目录的对应文件而是相对于真实根目录的文件
那么我们如何根据配置文件来限制客户机对网站目录的访问呢?
对于以上试验我们发现
更改Docunment Root后似乎无需更改<Directory>就能成功访问页面
我们想要通过http文件下载东西,比如红帽五的内容,除了用别名之外
我们还可以进行如下操作
在 /var/test下新建目录redhat 更改其属主属组,并将内容放进去注意同时更改属主属组
创建一个新目录
于是我们访问web站点http://192.168.0.11/redhat
无法访问
我们第一考虑到的是其没有首页文件(index.html或者php)
为其增加首页文件
可以得到最终的结果 可是这并不是我们想要的目的
添加自动索引
如果想要首页显示redhat的内容,我们需要在其配置文件中添加自动索引的关键词
删除首页文件后 ,再次访问
OK 其实某种取消自动索引某种程度上来说增加了网站的安全性
同样,还有一种不安全的做法 我们在apache的DocumentRoot下布置软连接
同时在配置文件中需要指明打开软连接
再次访问web站点
通过这个符号连接直接导向了根
相当危险
Order配置项 定义控制顺序
-allow,deny 先允许后拒绝,默认拒绝所有
-deny,allow 先拒绝后允许,默认允许所有
Allow/Deny from 配置项,设置权限
Deny from 地址1 地址2 。。 。。
Allow from 地址1 地址2 。。 。。
我们测试
按照上述默认应会被禁止
rt
无权访问
另外我们还可以对http进行用户限制,使只有输入正确的用户名与密码的用户才能访问
我们创建secret目录,使只有通过验证用户名,密码才能访问
我们把secret目录作为只有通过验证才能被访问的目录
AuthName : 认证领域名称,用于弹窗提示
AuthType: 认证类型,一般使用basic
AuthUserFile: 用户数据文件的的路径
Require :指定授权用户或组
在这解释require (授权) 如果是 validuser 则所有由httppasswd创建的用户都可以
而 user aa 就只有aa可以
感想
在目录中即使定义了order alow deny
Allow from All 也必须需要认证
附HTTP状态代码