zoukankan      html  css  js  c++  java
  • 虚拟主机 (Virtual Host)

    虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.

    Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.

    Redhat Enterprise Linux

    Redhat Enterprise Linux (包括 CentOS Linux), 是使用最广的 Linux 服务器, 大量的网站应用都部署在其上.

    1. 打开文件 /etc/httpd/conf/httpd.conf, 搜索 VirtualHost example, 找到代码如下:

    复制代码
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for requests without a known
    # server name.
    #
    #<VirtualHost *:80>
    #    ServerAdmin webmaster@dummy-host.example.com
    #    DocumentRoot /www/docs/dummy-host.example.com
    #    ServerName dummy-host.example.com
    #    ErrorLog logs/dummy-host.example.com-error_log
    #    CustomLog logs/dummy-host.example.com-access_log common
    #</VirtualHost>
    复制代码

    2. 仿照例子, 添加一段代码来指定某一域名的网站.

    复制代码
    #
    # DocumentRoot 是网站文件存放的根目录
    # ServerName 是网站域名, 需要跟 DNS 指向的域名一致
    #
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/httpdocs/demo_neoease_com
        ServerName demo.neoease.com
        ErrorLog logs/demo.neoease.com-error.log
        CustomLog logs/demo.neoease.com-access.log common
    </VirtualHost> 
    3. 重启 httpd 服务, 执行以下语句. 
    service httpd restart 
    复制代码
    复制代码
    Ubuntu Linux
     Ubuntu 在 Linux 各发行版中, 个人用户数量最多的. 很多人在本机和虚拟机中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 设置方法不相同.
     1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务的配置文件, default-ssl 是配置 https 服务使用的. 可以复制一份 default 文件. 并修改配置文件名, 文件名必须与域名一致 (如: demo.neoease.com)
     2. 打开新建的配置文件, 修改 DocumentRoot, ServerName 和对应的配置目录. 例子如下: 
    #
    # DocumentRoot 是网站文件存放的根目录
    # ServerName 是网站域名, 需要跟 DNS 指向的域名一致
    #
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/httpdocs/demo_neoease_com
        ServerName demo.neoease.com
        ErrorLog ${APACHE_LOG_DIR}/demo.neoease.com-error.log
        CustomLog ${APACHE_LOG_DIR}/demo.neoease.com-access.log combined
    </VirtualHost> 
    3. 通过 a2ensite 激活虚拟主机配置 
    sudo a2ensite demo.neoease.com 
    4. 打开目录 /etc/apache2/sites-enabled/, 你会发现所有激活的虚拟主机, 可以通过 a2dissite 进行注销 
    sudo a2dissite demo.neoease.com 
    5. 重启 Apache 服务, 激活虚拟主机 
    sudo /etc/init.d/apache2 restart 
    
    Windows
     Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异, 以下方式适合原生 Apache, XAMPP 和 WAMP 套件.
     1. 打开目录 {Apache2 安装目录}confextra\, 找到 httpd-vhosts.conf 文件. 
    2. 仿照例子, 添加一段代码来指定某一域名的网站. 
    #
    # DocumentRoot 是网站文件存放的根目录
    # ServerName 是网站域名, 需要跟 DNS 指向的域名一致
    #
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "D:/workspace/php/demo_neoease_com"
        ServerName demo.neoease.com
        ErrorLog "logs/demo.neoease.com-error.log"
        CustomLog "logs/demo.neoease.com-access.log" common
    </VirtualHost> 
    3. 打开 httpd.conf 文件, 添加如下语句. 
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf 
    4. 重启 Apache 服务. 
    Mac OS
     近年苹果的雄起, 让 Mac 日催普及, 也成为很多开发人员的选择. 因为与 Linux 同源, 配置方法也相似.
    1. 打开文件 /private/etc/apache2/extra/httpd-vhosts.conf. 
    2. 仿照例子, 添加一段代码来指定某一域名的网站. 
    #
    # DocumentRoot 是网站文件存放的根目录
    # ServerName 是网站域名, 需要跟 DNS 指向的域名一致
    #
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "/usr/docs/httpdocs/demo_neoease_com"
        ServerName demo.neoease.com
        ErrorLog "/private/var/log/apache2/demo.neoease.com-error_log"
        CustomLog "/private/var/log/apache2/demo.neoease.com-access_log" common
    </VirtualHost> 
    
    3. 打开文件 /private/etc/apache2/httpd.conf, 搜索 Virtual hosts, 找到代码如下: 
    
    # Virtual hosts
    #Include /private/etc/apache2/extra/httpd-vhosts.conf 
    
    去掉前面的注释符号 #, 保存文件. 
    4. 重启 apache 服务, 执行以下语句. 
    sudo apachectl restart 
    复制代码
    复制代码
    wamp5下的虚拟主机的配置
    
    
    
    
    今天配置了一下虚拟目录,以下是我的配置方法。
     
     1  编辑httpd.conf,查找Include conf/extra/httpd-vhosts.conf,把前面注释符号“#”删掉。
     2  编辑httpd-vhosts.conf,我把WAMPServer安装在D:/wamp,所以我这里的路径是D:wampApache2confextra。  
    
     
    把里面的内容清空掉或者注释,换成下面的内容:
     
    
    NameVirtualHost *:80
    
    这个是新增的努力目录
    <VirtualHost *:80>
    ServerName www.cms.com
    ServerAlias www.cms.com
    DocumentRoot "F://workplace"
    </VirtualHost>
    
    原来默认的目录
    <VirtualHost *:80>
        ServerName localhost
        ServerAlias localhost
        DocumentRoot "D:/wamp/www"
    </VirtualHost>
    
    3 编辑httpd.conf,找到DocumentRoot "d:/wamp/www/"这项,这是默认根目录路径,但是要更改的不是这个,一直往下找,找到<Directory "d:/wamp/www">,然后在该</Directoory>后加上如下内容:
     
      <Directory "F://workplace">
    
     
        Options Indexes FollowSymLinks
    
         AllowOverride all
        Order Allow,Deny
        Allow from all
        </Directory>
    
        <Directory "D:/wamp/www">
        Options Indexes FollowSymLinks
         AllowOverride all
        Order Allow,Deny
        Allow from all
        </Directory>
    --------------------------example-----------------------
    
    <VirtualHost *:80>
        DocumentRoot D:/ds/www
       ServerName www.ds.com
    <Directory "D:/ds/www">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    </VirtualHost>
    
    
    
    4  修改C:/WINDOWS/system32/drivers/etc/host这个文件,用记事本打开,加上如下内容:
       127.0.0.1  www.cms.com
    
    好了,然后重启apache,在浏览器里面输入www.cms.com,看看访问到的内容是不是workplace这个目录呢。
  • 相关阅读:
    ubuntu切换中英文通用方法,ubuntu中文语言
    ubuntu安装ibus-goolepinyin通用方法
    ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址
    ubuntu创建桌面快捷方式
    vim记住上次编辑和浏览位置
    ubuntu12.04安装tftp,配置,修改目录,错误类型
    Ubuntu 12.04 make menuconfig 出现 Unable to find the ncurses libraries or the required header files.
    nginx六 之Session共享
    nginx五 之高可用
    nginx四 之缓存模块
  • 原文地址:https://www.cnblogs.com/hllnj2008/p/4073767.html
Copyright © 2011-2022 走看看