您的位置:首页 > 运维架构 > Apache

Ubuntu下的Apache2虚拟主机的配置

2018-01-05 16:53 555 查看

1、Apache2的配置文件

<1>Ubuntu中Apache的配置文件是//etc/apache2/apache2.conf。Apache在启动时会找到这个文件并自动读取该文件中的配置信息,而其他配置文件则是通过include指令包含进来的,在apache2.conf 中可以看到这些引入行。当然,也可以将所有的配置全放在apache2.conf或者httpd.conf或者其他文件中,Apache这样划分是一种比较好的习惯。

<2>在/etc/apache2目录下,发现了sites-enabled目录,然而还有一个sites-available目录,那么这两个目录到底有什么作用呢?其实,sites-available这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。而sites-enabled目录的作用是持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。如果apache上配置了多个虚拟机,每个虚拟机的配置文件都放在sites-available下,那么对于虚拟主机的停用,启动就是非常方便了,操作某个虚拟主机就不用动配置文件了。

<3>在/etc/apache2下还用类似于sites-enabled和sites-available两个目录的mods-available和mods-enabled两个目录,那么这两个目录有何作用呢?其实类似于sites-enabled和sites-available,mods-available这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。比如当apt-get install php5安装了php模块,在这两个目录中就有了php5.load、php5.conf和指向这两个文件的链接。这对于apache开启停用某个模块是非常方便的。

<4>在/etc/apache2目录下,还有一个文件ports.conf,这个文件配置Apache监听的端口

<5>在Ubuntu缺省安装的目录有与其他相比有一点不同。在ubuntu中module和 virtual host的配置都有两个目录,一个是available,一个是enabled,available目录是存放有效的内容,但不起作用,只有用ln 连到enabled过去才可以起作用。

2、什么是虚拟主机?

所谓虚拟主机,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能。再简单的说,就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.com和www.example2.com两个域名都指向同一个服务器,而web服务器又支持虚拟主机,那么www.example1.com和www.example2.com可以访问到同一服务器上不同的web空间。

3、Apache2的安装

<1>安装Apache2

sudo apt-get install apache2


<2>Apache2安装完成后,在自己的Ubuntu上访问localhost,就可以访问到如下界面:



这是因为apache2的/etc/apache2/sites-avaliable下面有一个000-default.conf,vim打开此配置文件之后:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/


说明web文档默认存放在/var/www下,果然在下面有一个index.html,就是我们刚才显示的内容。

<3>访问到如上内容,说明apache2安装成功了,我们开始建虚拟主机了,虚拟主机可以基于三种方式来建 :域名,端口,ip地址。下面详细分别介绍三种方法。

4、基于域名来新建虚拟主机

<1>自己取好域名,将其添加到/etc/hosts文件中:



第三行是我自己添加的,ip是我的Ubuntu的ip,后面的域名是我随便起的。

<2>创建自己的项目目录,默认的目录是/var/www,你也可以在这个下面建,也可以自己新建,下面是我新建的目录,并且自己随便写了一个index.html





<3>进入/etc/apache2/sites-available新建my_test01.conf,我们可以复制000.default.conf,然后修改主要信息就可以了:添加Servername,修改DocumentRoot。



<4>进入/etc/apache2/sites-enable建立软连接:



<5>修改/etc/apache2.conf,赋予访问该目录的权限:



<6>重启apache2服务:

sudo /etc/init.d/apache2 restart


如果重启失败。要看看log,然后去修改相应的行。

<7>访问测试:



<8>分析一下过程:访问域名,首先会因为hosts文件去访问映射的ubuntu的ip地址,又因为安装了apache2,访问ubuntu的ip又会访问apache2服务器,服务器上的配置文件中分析到这个域名是访问的项目目录下的html文件,所以结果是这样。

5、基于端口来访问

<1>基本的目的是访问192.168.114.134来到test页面,访问192.168.114.134:6001来到secondtest页面

<2>和之前一样,添加hosts文件中新的域名

<3>创建项目目录,修改html文件

<4>新建/etc/apache2/sites-available/my_test02.conf,修改如下:



<5>监听6001端口:修改ports.conf:



<6>重启服务并访问测试:





6、基于ip地址新建虚拟机

<1>再给ubuntu创建一块网卡,设定ip为192.168.114.135,本来的是192.168.114.134



<2>同样的像之前一样,创建第三个测试文件index.html,和之前一样,添加进hosts文件,然后在etc/apache2/sites-available/下面创建my_test03.conf,修改为:



<3>建立软连接,之后修改apache2.conf,赋予权限,测试如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息