6-Web网站服务(二)

《名词解释》

【租用空间】:把网站放在专门的公司托管,但可能是一台电脑上有多个网站在运 ,带宽都是同时在使用,相对而言不是非常安全

【托管】:一般大公司比较常用,同样也是把公司网站放在专门的公司托管,但是是用自己的电脑放过去,所以是一台电脑对应一个网站。相对来说比较安一些

【专线】:拉一条专线到自己的公司,由公司的网络管理员看管。

081250248.jpg

一,httpd服务的访问控制

分类:客户机地址限制、用户授权限制

设置:httpd.conf主配置中的目录区域<Directory  目录位置>….</Directory>范围内

1),客户机地址限制

   #根据客户机的主机名或IP地址来决定是否允许客户端访问

   #通过配置项“OrderDenyfromAllow  from

       allowdeny:先允许后拒绝,默认拒绝所有未明确允许的客户机地址

       denyallow:先拒绝后允许,默认允许所有未明确拒绝的客户机地址

   #地址限制形式可以是: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的端口