第6章-Web网站服务(二)
《名词解释》
【租用空间】:把网站放在专门的公司托管,但可能是一台电脑上有多个网站在运 ,带宽都是同时在使用,相对而言不是非常安全
【托管】:一般大公司比较常用,同样也是把公司网站放在专门的公司托管,但是是用自己的电脑放过去,所以是一台电脑对应一个网站。相对来说比较安一些
【专线】:拉一条专线到自己的公司,由公司的网络管理员看管。
一,httpd服务的访问控制
分类:客户机地址限制、用户授权限制
设置:httpd.conf主配置中的目录区域<Directory 目录位置>….</Directory>范围内
(1),客户机地址限制
#根据客户机的主机名或IP地址来决定是否允许客户端访问
#通过配置项“Order、Denyfrom、Allow from”
allow、deny:先允许后拒绝,默认拒绝所有未明确允许的客户机地址
deny、allow:先拒绝后允许,默认允许所有未明确拒绝的客户机地址
#地址限制形式可以是:IP地址、网络地址、主机名、域名
【案例一】:允许从任何客户机访问
<Directory “/usr/local/httpd/htdocs”>
......//省略部分内容
Order allow,deny
Allow from all
</Directory>
【案例二】:允许指定IP能够访问Awstats系统
<Directory “/usr/local/awstats/wwwroot”>
Order allow,deny
Allow from 173.17.17.173
</Directory>
【案例三】:禁止指定网段访问
<Directory “/usr/local/awstats/wwwroot”>
Order deny,allow
Allow from 192.168.1.0/24 192.168.2.0/24
</Directory>
(2),用户授权限制
Øhttp服务支持方式:摘要认证(Digest)、基本认证(Basic)
Ø使用摘要认证需要编译http之前添加“--enable-auth-digest”选项
Ø使用基本认证不需要预先配置特别的选项
Ø用户访问控制包含“认证”和“授权”两个过程
认证(Authentication)是指识别用户身份的过程
授权(Authorization)是允许特定用户访问特定目录区域的过程
1、创建用户认证数据文件
Ø授权访问的用户账号需要事先建立,并保存在固定的数据文件中
Ø使用“htpasswd”工具程序,可以创建授权用户数据文件,并维护其中的用户账号
Øcd /usr/local/httpd/ /进入httpd目录
Øbin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New Password: /输入密码
Re-type new password: /确认密码
Øcat /usr/local/httpd/conf/.awspwd /确认用户数据文件
2、添加用户授权配置
Ø修改httpd.conf配置文件
Ø在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问
Øvim /usr/local/httpd/awstats/wwwroot
<Directory “usr/local/awstats/wwwroot”>
……//省略部分内容
AuthName “hello”
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>
Øservice httpd restart /重启httpd服务
【配置项的含义说明】
AuthName:定义受保户的领域名称,该内容将在浏览器弹出的认证对话框中显示
AuthType:设置认证的类型,Basic表示基本认证
AuthUserFile:设置用于保存用户账号、密码的认证文件路径
require valid-user:要求只有认证文件中的合法用户才能访问,其中valid-user表示所有合法用户,若只授权给单个用户,可以改为指定的用户名(如,webadmin)
3、验证用户访问授权
二、构建虚拟Web主机
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的
基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同、这种方式需要为服务器配置多个网络接口,此应用并不是非常广泛
基于端口:这种方式并不使用域名、IP地址来区分不同站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问
(1),基于域名的虚拟主机
1、为虚拟主机提供域名解析
2、为虚拟主机准备网页文档
mkdir /var/www/benet
mkdir /var/www/accp
echo > /var/www/benet/index.html
echo > /var/www/accp/index.html
3、添加虚拟主机配置
监听地址:使用NameVirtualHost配置项指定提供虚拟主机服务的IP地址,也就是进行域名查询时各虚拟Web主机的IP地址
虚拟主机区域:使用<VirtualHost 监听地址>……</VirtualHost>区域配置;其中至少包括“虚拟主机的网站名称”、“网站根目录的配置项”
目录权限:使用<Directory 目录位置>……</Directory>区域配置;为每一个虚拟Web主机的网站目录设置访问权限,如允许任何人访问,目录访问可以继承其父目录的授权许可
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory “/var/www”> /设置目录访问权限
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80> /监听端口为80
DocumentRoot /var/www/benet /设置benet虚拟站点区域
ServerName
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/accp /设置accp虚拟站点区域
ServerName
</VirtualHost>
NameVirtualHost *:80 /设置虚拟主机监听地址
基于IP、端口这项一定要关闭
vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf /加载独立的配置文件
service httpd restart /重启服务
4、在客户机中访问虚拟Web主机
(2),基于IP地址虚拟主机
【第一步】:vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory “/var/www”>
Order allow,deny
Allow from all
</Directory>
<VirtualHost 192.168.1.100> /设置benet虚拟站点区域
DocumentRoot /var/www/benet
ServerName
</VirtualHost>
<VirtualHost 192.168.1.200> /设置accp虚拟站点区域
DocumentRoot /var/www/accp
ServerName
</VirutalHost>
【第二步】:vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf /加载独立的配置文件
(3),基于端口的虚拟主机
【第一步】:vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory “/var/www”>
Order allow,deny
Allow from all
</Directory>
<VirtualHost 192.168.1.100:80> /设置benet虚拟站点区域
DocumentRoot /var/www/benet
ServerName
</VirtualHost>
<VirtualHost 192.168.1.100:8080> /设置accp虚拟站点区域
DocumentRoot /var/www/accp
ServerName
</VirutalHost>
【第二步】:vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf /加载独立的配置文件
Listen 192.168.1.100:80 /监听80的端口
Listen 192.168.1.100:8080 /监听8080的端口