Apache虚拟主机配置

1.  <VirtualHost> 和 </VirtualHost>  虚拟主机的关键指令:
     语法:  <VirtualHost IP地址[:端口号]  [IP地址 [:端口号] ] ...>  ...  </VirtualHost> 
     eg:   <VirtualHost *:80>  表示监听本机所有IP地址的80端口。
             
<VirtualHost 192.168.1.10:8080> 表示监听192.168.1.10的8080端口。

2. ServerAdmin指令
       用于指定站长的E-mail地址。当用户访问出现错误,Apache将会显示这这个E-mail地址。

3.DocumentRoot指令
        用来指定网站的根目录。一般设置为绝对路径;否则,Apache将认为它的父目录是ServerRoot指令所定义的路径。 
       eg: 
DocumentRoot /var/www/xiebo.test.com
 
4. <Directory></Directory>指令
        他们中间包含的指令,仅对指定的目录有效 ;(这里的目录,还支持通配符和正则表达式,用来匹配很多目录 )

5. Option指令 
          用来配置指定目录的特性,比如是否允许目录下有符号链接,是否使用CGI等。这些特征包括:
               ALL   : 除MultiViews之外的所有特征(默认设置);
               ExecCGI :允许该目录通过mod_cgi运行CGI脚本;
               FollowSymLinks : 允许在此目录中使用符号链接;
               Indexes  :在该目录中允许使用mod_include进行服务器端包含;
               IncludesNoEXEC : 允许服务器端包含,但禁用“#exec cmd" 和 ”#exec cgi“ ;
               Indexes :允许列目录,如果某个被访问的目录中没有DirectoryIndex指定的文件(如index.html),那么服务器将生成并显示目录列表;
              MultiViews : 允许”内容协商“的”多重视图“。”内容协商“由mod_negotiation模块生成;
              SymLinksIfOwnerMatch : 只允许使用这样的符号链接:这些符号链接与目标目录(或文件)的拥有者具有相同的UserID。
   在Option指令中,可以使用加减号(+或-),如果所有作用于Option指令的选项前都有” +“或”-“号,则此可选项将被合并----所有带”+“号的选项将强制覆盖当前的设置,而所有带”-“号的选项将强制从当前设置中去除。

 6.AllowOverride指令  (仅在不包含正则表达式的<Directory>配置段中才有效。)
      该指令是针对.htaccess文件的;可以允许该文件的全部指令,也可以只允许某些类型的指令,或者全部禁止。语法为:
            AllowOverride  All  | None | directive-type [directive-type] ...
      Apache本来的默认值是AllowOverride All (允许.htaccess的全部指令),但是出于安全考虑,Ubuntu将其改为了AllowOverride None(直接忽略.htaccess文件)。
     AllowOverride后面除了All和None,还可以定义指令类型,这些类型有:AuthConfig,FileInfo,Indexes和Limit。
   
  7. Order指令  (参照Allow和Deny指令,会增进对本指令的理解)
             用来控制默认访问状态,以及Allow和Deny指令的生效顺序。
         如果是”Deny,Allow“,那么Deny指令在Allow指令之前被评估,默认允许所有访问。 任何不匹配Deny指令或者匹配Allow指令的访问者都被允许访问。
       如果是”Allow,Deny",那么Allow指令在Deny指令之前被评估,默认拒绝所有访问,任何不匹配Allow指令或者匹配Deny指令的访问都将被禁止访问。
 
8. Allow 指令
     用来控制哪些主机可以访问,可以根据主机名,IP地址,IP范围或其他环境变量的定义来进行控制。语法:
             Allow from all | host | env=env-variable [host | env=env-variable]...
      eg:  
Allow from all   允许所有主机访问
             Allow from .net  example.edu     一个(部分)域名
            Allow from  192.168.1.2   192.168.1.10  完整IP地址
            Allow from   10  172.20  192.168.1   部分IP地址(IP地址的开始1-3个字节,用于子网限制)
            Allow from   10.1.0.0/255.255.255.0  网络/掩码对  
            Allow from   10.1.0.0/24 网络/nnn  (CIDR形式)  
 
  9. Deny指令
            用来限制主机访问的,其语法和参数与Allow指令完全相同;
 
  10. ErrorLog指令
            指定了错误日志的位置。通常情况下,只需要写明日志文件的路径即可:  
ErrorLog ${APACHE_LOG_DIR}/error.log
        其中,  ${APACHE_LOG_DIR}变量是在envvars这个配置文件中设置的,它指向/var/log/apache2 .
          你也可以让Apache将错误信息交给某个命令去处理,而不是写入一个文件;要这样做只需要开头写一个管道符号“|”,后面跟命令的路径即可,eg :  ErrorLog   “|  /usr/local/bin/httpd_errors"

  11. LogLevel指令
           用来控制日志的详细程度的级别。按照由粗到细的顺序,这些级别有:
                  emerg :紧急(系统无法使用);
                  alert : 必须立即采取措施
                  crit : 致命错误
                  error :错误情况
                  warn : 警告情况
                  notice : 一般重要情况
                  info : 普通信息
                  debug : 调试信息
        每个级别所输出的信息都会包含上一级别的信息,比如说,如果设置为LogLevel  info,那么所有notice和warn级别的信息都会被记录
               .
  12.CustomLog指令
           定义了访问日志的路径和格式,语法如下:
            CustomLog  file | pipe   format | nickname [env=[!]environment-variable]  
             指令的第1个参数,可以是日志文件的路径,也可以是管道(用某个程序来处理日志信息,语法和ErrorLog相同,也是管道符”|“后面跟着一个程序的路径);
            
指令的第2 个参数  ,则是格式,这个格式既可以是由LogFormat指令所定义的nickname,也可以是按日志格式的规则定义的格式字符串。
         以下两组设置,分别使用nickname和格式字符串,其结果是完全一样的:
          #使用nickname
          LogFormat "%h %l %u %t \"%r\" %>s %b" common
          CustomLog ${APACHE_LOG_DIR}/access_log common 
 
         #使用格式字符串
            
CustomLog ${APACHE_LOG_DIR}/access_log     "%h %l %u %t \"%r\" %>s %b"

13. ServerSignature指令
       用来定义服务器所生成页面的脚本,这些页面包括错误信息,mod_proxy的ftp目录列表,mod_info的输出等。
       如果设置为ServerSignature Off,那么服务器生成的网页底端不会有附加信息,如果设置为ServerSignature On,那么在某些情况下(比如目录列表),服务器生成的网页的底部会有类似这样的信息: Apache/2.4.7 (Ubuntu) server at xiebo.test.com port 8899
      如果设置为ServerSignature Email,则会在上述信息的基础上,给域名加上E-Mail的链接,指向你在ServerAdmin指令中定义的E-mail地址。

14. Alias指令
    该指令有点像Linux的Ln命令,它提供路径别名,让你用起来更方便。通过该指令,即使某个目录(或文件)不在DocumentRoot所设置的路径下,也可以通过Alias指令令其可以访问。语法:
      Alias   URL-path   file-path | directory-path  
  eg: Alias  /doc/ "/usr/share/doc/"    将/usr/share/doc/映射成网站的/doc/ 。





<VirtualHost *:8899>
        ServerAdmin webmaster@localhost
        ServerName xiebo.test.com
        DocumentRoot /var/www/xiebo.test.com
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/xiebo.test.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值