您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Ubuntu下配置Apache的虚拟主机

添加时间:2014-1-8 17:52:16  添加: 思海网络 

关于Apache的虚拟主机配置

    A基本配置

    我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主

    机了。那么要如何进行设置呢?这就是本指南想解决的问题了。在 Ubuntu 的 /etc/apache2/ 目

    录下有个 Apache2 的主配置文件 apache2.conf。在该文件中我们可以看到有这么一行内容:

    Include /etc/apache2/sites-enabled/[^.#]*

    这行的意思表明该文件包含了 /etc/apache2/sites-enabled/ 目录中文件名不含 "." 或 "#" 这

    两个字符的所有文件。而当我们列出该目录的文件时,发现只有一个 000-default 的软链接文件

    ,实际连接的是 /etc/apache2/sites-available 目录中的 default 文件,不难看出该文件的文

    件名中并不包含 "." 或 "#"。所以这个文件当然是要被配置文件 apache2.conf 所包含的了。打

    开该文件,发现它其实是一个虚拟主机的配置文件,不过由于该文件中的虚拟主机为 *,所以它实

    际上是一个通用配置文件。如果我们要建立虚拟主机的话,那么就要把该文件改成如下所示:

    NameVirtualHost 10.39.6.59

    <VirtualHost 10.39.6.59>

    ServerName www.britepic.org

    ServerAdmin Ubuntu@gmail.com">Ubuntu@gmail.com

    DocumentRoot /var/www/

    <Directory />

    Options FollowSymLinks

    AllowOverride None

    </Directory>

    <Directory /var/www/>

    Options Indexes FollowSymLinks MultiViews

    AllowOverride None

    Order allow,deny

    allow from all

    # This directive allows us to have apache2's default start page

    # in /apache2-default/, but still have / go to the right place

    # Commented out for Ubuntu

    #RedirectMatch ^/$ /apache2-default/

    </Directory>

    Alias /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 /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,

    # alert, emerg.

    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    ServerSignature On

    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>

    下面我们来分析一下上面这段设置中与虚拟主机有关的设置语句:

    `NameVirtualHost 10.39.6.59`:表示我们要做的是一个基于名称的虚拟主机,且其 IP 地址为

    10.39.6.59

    `<VirtualHost 10.39.6.59> 和 </VirtualHost>`:表示在其中的是一个虚拟主机的配置

    `ServerName www.britepic.org`:设置虚拟主机的域名

    `ServerAdmin Ubuntu@gmail.com`:设置该虚拟主机网管员的邮件

    `DocumentRoot /var/www/`:设置该虚拟主机的主目录路径

    `ErrorLog /var/log/apache2/error.log`:设置该虚拟主机的出错信息

    `CustomLog /var/log/apache2/access.log combined`:设置该虚拟主机的访问信息

    这样我们就配置了一个虚拟主机 www.britepic.org。但由于这是缺省配置,所以在 Apache2 重启

    之后,无论你输入 DNS 服务器中指向这个主机的任何域名,都会被导向 www.britepic.org 这个

    缺省配置所指向的 /var/www 这个目录的。除非该域名被其他虚拟主机配置所用,比如我们还配置

    了 edunuke.britepic.org 指向本机,且配置了相应的虚拟主机,这样的话,输入域名

    edunuke.britepic.org 就会被对应该域名的目录中。

    B进一步说明

    为了说明清楚 我们再添加一个虚拟主机站点 edunuke.britepic.org,首先到

    /etc/apache2/sites-available/ 目录中建立一个文件 edunuke。当然这个文件名中是没有 "."

    或 "#" 这两个字符的了。然后编辑该文件:

    <VirtualHost 10.39.6.59>

    ServerName edunuke.britepic.org

    ServerAdmin Ubuntu@britepic.org

    DocumentRoot "/var/www/edunuke/"

    ErrorLog "/var/log/apache2/edunuke_errors.log"

    CustomLog "/var/log/apache2/edunuke_accesses.log" common

    </VirtualHost>

    设置的具体含义同上面的相似,这是我就不再多说了。然后再运行命令:

    sudo a2ensite edunuke

    这样的话,虚拟主机站点 edunuke.britepic.org 就已经安装好了。这时你也可以在

    /etc/apache2/sites-enabled/ 目录中发现多了一个到 /etc/apache2/sites-available/edunuke

    的软链接。接下来就是将 Apache2 重启来使虚拟主机站点运行起来:

    sudo /etc/init.d/apache2 restart

    这样你在浏览器上输入 edunuke.britepic.org 的话,就会被指向 /var/www/edunuke 目录了,而

    输入其他指向本机的域名则都会指到缺省配置中的 /var/www 目录中。熟悉 Apache2 的朋友会问

    为什么这样麻烦,放在一个文件中不也是可以吗?为什么要用两个文件呢?其实很简单,因为如果

    我要对 edunuke 站点进行维护时,我只要运行命令:

    sudo a2dissite edunuke

    sudo /etc/init.d/apache2 restart

    即可,这样既可以维护 edunuke 这个站点,同时还不影响其他站点的正常运行。

    C高级配置

    上面谈了一下简单的虚拟主机配置方法。这个基本上能满足我们大部分的需要。但如果要是安装

    Zope+Plone 的话,上面的这点设置是远远不够的,由于 Zope+Plone 结构所采用的端口并非是80

    端口,所以我们还得做端口重定向。为了能够做这个,我们得激活 Rewrite 和 Proxy 两个模块。

    激活模块很简单,同站点配置目录一样,在 Apache2 中也有两个模块配置目录:mods-available

    和 mods-enabled。在 mods-available 目录中的是所有可用的模块,而在 mods-enabled 目录中

    的则是已被安装到 Apache2 中的模块。由于在 mods-available 目录中已经有了 Rewrite 和

    Proxy 模块的配置引导文件,所以只需要简单地将其安装到 Apache2 中即可。使用命令:

    sudo a2enmod rewrite

    sudo a2enmod proxy

    然后,添加虚拟主机站点 plone.britepic.org,同 edunuke 站点创建相似

    在/etc/apache2/sites-available/ 目录中建立一个文件 plone。显然这个文件名中是没有 "."

    或 "#" 这两个字符的了。然后编辑该文件:

    <VirtualHost 10.39.6.59>

    ServerName plone.britepic.org

    ServerAdmin Ubuntu@britepic.org

    ErrorLog "/var/log/apache2/plone_errors.log"

    CustomLog "/var/log/apache2/plone_accesses.log" common

    RewriteEngine on

    RewriteRule ^/(.*)

    http://127.0.0.1:8081/VirtualHostBase/http/plone.britepic.org:80/plone/VirtualHostRoot

    /$1 [L,P]

    <Proxy *>

    Order Deny,Allow

    Deny from all

    Allow from all

    </Proxy>

    </VirtualHost>

    这样就安装好了 plone.britepic.org 虚拟主机站点,可以在浏览器中地址栏中输入

    http://plone.britepic.org 就可以重定向到 Zope+Plone 站点去了。

关键字:Ubuntu、Apache、虚拟主机

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站