搭建apache服务器

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状态代码

原文地址:https://www.cnblogs.com/clearlove/p/4164002.html