• apache配置虚拟主机 个人理解


    范例

    Listen 80
    #NameVirtualHost *
    <VirtualHost *:8080>
      ServerName apacheconfig2
      DocumentRoot /var/www/apacheconfig/test1
      DirectoryIndex index.html   #站点的默认访问资源,即不指明请求资源时,默认访问index.html文件
     <Directory "/var/www/apacheconfig/test1">   #设置对目录的访问控制
        AllowOverride All
        Options Indexes FollowSymLinks
        Require all granted
     </Directory>
    </VirtualHost>

    详细可以参照官方文档  http://httpd.apache.org/docs/2.0/vhosts/examples.html#page-header

    个人理解如下,如有错误,欢迎指摘。

    配置虚拟主机主要设置四个要素

      IP

      端口  (Listen指令开启的端口才可以使用)

      域名

      站点根目录(设置请求资源的相对根目录)

    匹配规则

      apache在匹配虚拟主机时,会首先匹配IP, 再匹配端口,最后再匹配域名,如果设有多个虚拟主机,会从上往下依次匹配,匹配成功则停止匹配,因此,越在上面,优先度越高

      IP和端口的匹配必须要严格匹配,如果IP和端口不匹配,则找不到可用的虚拟机配置,无法正常显示网页

      如果IP和端口都匹配,但所有的域名都不匹配,则默认使用IP和端口匹配的第一个虚拟机配置

      虚拟机配置匹配成功之后,要访问的资源文件是相对于站点根目录的,如果站点根目录中不存在该资源,则报404错误,此时要确保站点根目录和请求的资源文件是否正确 

      IP和端口的配置都可以使用通配符*, 表示匹配本机所有的IP和端口号

      要想匹配某个端口号,前提是使用Listen指令开启对这个端口的监听

    用法实例

    1. 一个IP对应多个站点(所谓的站点的是否相同,指的是站点根目录是否相同,相同则是同一个站点,不同则是不同的站点)

    IP相同,端口不同,域名相同。虽然可以使用同一个域名访问,端口不同,访问的站点也不同

    http://www.example1.com:80匹配第一个虚拟机配置

    http://www.example1.com:8080匹配第二个虚拟机配置

    Listen 80
    Listen 8080
    <VirtualHost 172.20.30.40:80>
        ServerName www.example1.com
        DocumentRoot /www/domain-80
    </VirtualHost>
    
    <VirtualHost 172.20.30.40:8080>
        ServerName www.example1.com
        DocumentRoot /www/domain-8080
    </VirtualHost>

    IP相同,端口相同,域名不同。虽然IP地址和端口相同,但使用的域名不同则访问的站点不同

    http://www.example1.com:80匹配第一个虚拟机配置

    http://www.example2.com:80匹配第二个虚拟机配置

    Listen 80
    <VirtualHost 172.20.30.40:80>
        ServerName www.example1.com
        DocumentRoot /www/domain-80
    </VirtualHost>
    
    <VirtualHost 172.20.30.40:80>
        ServerName www.example2.org
        DocumentRoot /www/otherdomain-80
    </VirtualHost>

    2. 多个IP对应多个站点

    Listen 80
    <VirtualHost 172.20.30.40:80>
        ServerName www.example1.com
        DocumentRoot /www/domain-80
    </VirtualHost>
    
    <VirtualHost 172.20.30.41:80>
        ServerName www.example2.org
        DocumentRoot /www/otherdomain-80
    </VirtualHost>

    3. 多个IP对应同一个站点

    Listen 80
    <VirtualHost 172.20.30.40:80>
        ServerName www.example1.com
        DocumentRoot /www/domain-80
    </VirtualHost>
    
    <VirtualHost 172.20.30.41:80>
        ServerName www.example2.org
        DocumentRoot /www/domain-80
    </VirtualHost>

    常用指令的规则

    Listen 端口号
    Listen IP:端口号
    <VirtualHost IP>
    <VirtualHost IP:端口号>
    <VirtualHost *:*>
    <VirtualHost *:端口号>
    <VirtualHost IP:*>
  • 相关阅读:
    洛谷 P1097 统计数字
    个人冲刺09
    《需求工程 ——软件建模与分析》读书笔记02
    个人冲刺08
    《需求工程 ——软件建模与分析》读书笔记01
    个人冲刺07
    个人冲刺06
    个人冲刺05
    个人冲刺04
    个人冲刺03
  • 原文地址:https://www.cnblogs.com/gaoBlog/p/12096693.html
Copyright © 2020-2023  润新知