版本V1.0

时间2012-10-04

版权GPL

作者itnihao 邮箱 itnihao@qq.com

博客 http://itnihao.blog.51cto.com

如需重新发行,请注明以上信息,谢谢合作

前言

本文档基于对apache的学习整理而成的笔记。本文档详细的记录了apache各种应用,以及一些个人的理解,如果偏差,请和我联系,以在下一个版本中进行更正。其中大部分文档均来自网络,感谢网络上各位朋友的分享,才有此文档的出现。其中本人对参考的部分网络文档进行适当的修改,以达到更好的参考效果。也希望各位积极的分享文档,为开源事业做出自己力所能及的贡献。

                                             itnihao  20121004日于成都

第八章apache的虚拟主机以及用户认证

上面章节的结尾处,提到了虚拟主机的目录位置,本章将详解虚拟主机的配置

8.1虚拟主机的样本文件

NameVirtualHost    *:80  定义虚拟主机监听的ip端口,为全局监听ip端口

<VirtualHost *:80>                                             虚拟主机的ip端口

    ServerAdmin    webmaster@dummy-host.example.com          管理员邮箱

    DocumentRoot   "/usr/local/apache/docs/dummy-host.example.com" 网页位置

    ServerName     dummy-host.example.com                     域名

    ServerAlias     www.dummy-host.example.com                 域名的别名

    ErrorLog      "logs/dummy-host.example.com-error_log"         错误日志

CustomLog    "logs/dummy-host.example.com-access_log" common 访问日志

#   Alias  /web  "/data/web/html_file"  设置目录别名,非必须参数

# <Directory "/data/web/html_file"> 

#    Options  IncludesNoExec  MultiViews  Indexes  FollowSymLinks #各种参数非必须参数

#    Order deny,allow  #访问控制,非必须参数

#    Deny from all

#    Allow from .example.com 

# </Directory> 

</VirtualHost>

样本文件中

DocumentRoot ServerName 为配置的主要参数,其他可选,可以根据实际需要配置。

8.2基于域名的虚拟主机

  8.2.1将虚拟主机配置在httpd.conf文件中

编辑httpd.conf文件,增加以下三个虚拟机主机

www.itniaho.cn 202.10.10.235

blog.itniaho.cn 202.10.10.235

bbs.itniaho.cn  202.10.10.235

服务器的ip202.10.10.235,配置如下

NameVirtualHost *:80  

<VirtualHost *:80>  #虚拟主机www.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/html_file  #网站根目录

        ServerName      www.itniaho.cn  #域名

        ErrorLog        logs/www.itnihao.cn.err.log  #错误日志

        CustomLog       logs/www.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost *:80>   #虚拟主机bbs.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      bbs.itniaho.com  #域名

        ErrorLog        logs/bbs.itnihao.cn.err.log  #错误日志

        CustomLog       logs/bbs.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost *:80>  #虚拟主机blog.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      blog.itniaho.com  #域名

        ErrorLog        logs/blog.itnihao.cn.err.log  #错误日志

        CustomLog       logs/blog.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

  8.2.2将虚拟主机单独写配置文件

单独写配置文件,便于对各虚拟主机单独维护,推荐使用此种方法。

httpd.conf 修改内容如下  

#DocumentRoot "/var/www/html"  #注释此行 一般在文件的280上下  

Include conf/vhost/*.conf  #虚拟主机的配置文件统一存放到conf/vhost/*conf 

NameVirtualHost *:80 

然后分别在conf/vhost/下面放置

www.itnihao.conf.conf

blog.itniaho.com.conf 

bbs.itniaho.com.conf 

内容分别为对应的每个虚拟主机的配置

8.3基于ip的虚拟主机

主机有3ip

10.10.10.10

20.20.20.20

30.30.30.30

NameVirtualHost *:80  

<VirtualHost  10.10.10.10:80>  #虚拟主机www.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/html_file  #网站根目录

        ServerName      www.itniaho.cn  #域名

        ErrorLog        logs/www.itnihao.cn.err.log  #错误日志

        CustomLog       logs/www.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost 20.20.20.20:80>   #虚拟主机bbs.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      bbs.itniaho.com  #域名

        ErrorLog        logs/bbs.itnihao.cn.err.log  #错误日志

        CustomLog       logs/bbs.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost  30.30.30.30:80>  #虚拟主机blog.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      blog.itniaho.com  #域名

        ErrorLog        logs/blog.itnihao.cn.err.log  #错误日志

        CustomLog       logs/blog.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

8.4基于端口的虚拟主机

Listen 80

Listen 81

Listen 82 #注意无NameVirtualHost *:80 

 <VirtualHost  *:80>  #虚拟主机www.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/html_file  #网站根目录

        ServerName      www.itniaho.cn  #域名

        ErrorLog        logs/www.itnihao.cn.err.log  #错误日志

        CustomLog       logs/www.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost *:81  #虚拟主机bbs.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      www.itniaho.com  #域名

        ErrorLog        logs/bbs.itnihao.cn.err.log  #错误日志

        CustomLog       logs/bbs.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

<VirtualHost  *:82 #虚拟主机blog.itnihao.cn

        ServerAdmin     itnihao@qq.com #管理员的邮箱

        DocumentRoot    /data/web/bbs_file  #网站根目录

        ServerName      www.itniaho.com  #域名

        ErrorLog        logs/blog.itnihao.cn.err.log  #错误日志

        CustomLog       logs/blog.itnihao.cn.access.log common #访问日志 

</VirtualHost> 

8.5 apache的认证功能

  8.5.1 apache基于文本的认证

Apache的配置文件httpd.conf内容如下

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www/html/www

ServerName   www.itnihao.cn

      Options              None

   <Directory "/var/www/html/www">

      AllowOverride        AuthConfig

      AuthType             basic

      AuthName             admin

      AuthUserFile         /etc/httpd/conf/.password

      Require              valid-user 

   </Directory>

</VirtualHost>

大于8万字,剩余部分传附件