Apache之因此受到不少公司的亲睐,正是他的开源代码,跨平台,模块化设计,功能灵活,不只性能稳定,安全性也表现出色。下面咱们就一块儿看看他安全性的表现,以及虚拟主机的配置。html
http服务的访问控制:web
主机控制apache
在apache的主配置文件中,经过配置项 Order,Denyfrom,allowform 能够限制客户机ip或者是主机名的访问,其中order 用来设置限制顺序,denyfrom和allowfrom用来设置具体的内容。windows
Order: 决定匹配的顺序浏览器
allow,deny 先容许 后拒绝 默认拒绝全部没有明确容许的客户端。安全
deny,allow 先拒绝 后容许,默认容许全部没有明确拒绝的客户端。服务器
能够用all 来指定全部的地址。ide
下面我就来限制一下模块化
这样就除了192.168.1.1之外的全都会拒绝掉了。性能
表示没有权限
用户认证:
在主配置文件的“目录”中
添加
AuthName:定义受保护的领域名称,也能够理解为是提示信息。
AuthType:设置认证类型,Basic 表示基本认证。
AuthUserFile:设置用于保存用户帐号,密码的文件路径。
Requite valid—user :要求认证文件中只有合法的用户才能访问其中 valid-user表示全部合法用户,若要指定单个用户 后面跟上指定的用户名。
下面来测试一下
而后再用htpasswd 命令指定认证文件和用户以及密码
-c 是建立认证文件 后面跟上用户名robin
第二次建立用户的时候就不用加-c 了 由于文件已经存在了 否则会提示 覆盖操做
能够看出如今有两个用户 以及加密的密码。
访问一下
提示要认证
Robin用户已经成功登录
否侧提示没有认证成功
以上都是体现了Apache的安全性方面,接下来是怎么样构建虚拟主机
什么是虚拟web主机, 虚拟web主机就是在同一台服务器中运行多个web站点,每一个站点并非彻底占有整个服务器。所以称为 ‘虚拟的web’主机,经过虚拟主机能够大大减小web站点的成本和维护费用。
不管是微软的IIS网站服务,仍是Apache 以及后面要研究的Nginx 构建虚拟主机的方法无外乎三种方法:
基于域名: 服务器的一个ip对应多个不一样的域名。
基于ip地址:每一个虚拟主机的域名不一样,切对应的ip也不同,也就是说,一台服务器上有多个ip地址。
基于端口:咱们知道http 是监听的80 端口,若是咱们将不一样的虚拟主机监听的端口都不同的话 也可以实现虚拟主机, 可是客户端访问的时候要指定端口访问,由于浏览器默认访问服务器的80端口。
Apache配置虚拟主机的主要配置文件除了以前的httpd.conf以外,还有就是httpd-vhosts.conf 默认是放在Apache安装目录下的conf/extra/ 下
下面就来操做一下
显示基于域名 的
由于是靠域名范文 就要有域名解析 这里由于环境问题 我就把两个域名直接写在hosts文件当中了 同一个ip对应不一样的域名
域名问题解决了 还有网页文件的问题 我就手工写两行网页文件
mkdir 建立了两个站点的根目录 echo 命令是向index.html 默认文档中写入内容
最后就是配置两个配置文件了
先是 httpd的主配置文件 要让他支持虚拟主机的功能 。
默认这一项是注释掉的 如图
取消他的注释 重启服务便可
另外一个就是 httpd-vhosts.conf配置文件了 这里的默认位置如图:
通常在配置虚拟主机的时候 主要配置的是这几个方面的内容
监听地址: 包括 ip 端口号 由NameVirtualHost 配置项指定
虚拟主机区域:其中包括主机名称 网页更目录,管理员邮箱 以及log方面
目录权限:为每个虚拟主机所在的目录配置访问权限。
httpd—vhosts.conf 文件中默认有虚拟主机的示例,咱们只要稍做改动便可
NameVirtualHost:指定要全部虚拟主机要监听的地址和端口 * 表明全部
<VirtualHost *:80>
……
…… 省略
</VritualHost> : 虚拟主机区域,不一样的区域就以这个标志区分
ServerAdmin : 指定管理员邮箱
DocumentRoot:指定网页的根目录
Server-Name:指定网站名称
ServerAlias:网站的别名
Errolog: 错误日志存放位置
CustomLog:访问日志存放位置 common 格式为通用
知道这些参数做用以后 就根据刚才建立的网页和网页目录修改
而后重启服务 浏览器访问
百度
51cto
好了 而后是根据端口作虚拟主机
只要把建立虚拟主机三种方法的原理弄明白,就很好配置了,只须要继续作改动就能够
先改动httpd.conf主配置文件 由于他默认只监听了80 端口 因此要添加 这里我添加了51端口 (要保证这个端口没有被其余的服务所占用)
虚拟主机方面也要更改
另外 建议httpd-vhosts.conf 中默认监听的80 给他注释掉 有每一个虚拟主机中的配置决定监听的地址
浏览器访问
哦了
关于基于ip的配置方法就不详细解释了 他并非最经常使用的,缘由是公网的ip造价高,小公司用不起啊!Apache就介绍到这吧。有时间在介绍下windows下Apache的配置。(其实前面博客已经稍稍介绍了一点了 )
Ps:我今天微博添加了一些比较冷门的音乐,有兴趣的能够多串串。