apache2(二)虚拟主机配置

来源:互联网 发布:python 调用hanlp分词 编辑:程序博客网 时间:2024/05/18 02:47

虚拟主机的意思就是一台电脑可以通过n多的url来进行访问,可以存在n多的站点,虚拟主机配置在apache上算比较麻烦的部分,因为它不光只是涉及到apache服务器的问题,还需要相关的dns来支持

 

首先,要通过多个url通达一台主机,那样的话就需要dns服务器上对你的ip地址注册多个url隐射,也就是申请多个域名并转发到你的主机ip地址上。

当然,做开发来说,一般不需要在外网连接访问,如何使自己在游览器上输入的地址转发到自己这台机器上就成了重点,所以,我们只需要配置自己这台电脑上的转发策略就可以了

配置自己主机的dns转发:

首先,我希望配置的主机域名是 :www.example.com 和www.example.org  意思就是说 以后当我在我的firefox里输入这2个地址后,将会转发到我的服务器上。

1:

执行sudo vim /etc/host.conf

# The "order" line is only used by old versions of the C library.
order hosts,bind      #dns执行的顺序,hosts,bind代表 首先查看本地主机hosts文件,找不到在使用bind的dns查找
multi on     #开启多域名

确保hosts在bind前

2:

执行sudo vim /etc/hosts 在里面添加需要转发的地址与文件

127.0.0.1       localhost              #已经存在的主机映射了
127.0.1.1       gavin-laptop

127.0.0.1       www.example.com  #我需要配置的主机映射

127.0.0.1       www.example.org

 

OK dns转发配置完成。

 

下面需要配置httpd.conf

sudo vim $APACHE_HOME/conf/httpd.conf

添加:

NameVirtualHost *:80

<VirtualHost *:80>

    ServerName www.example.com

    DocumentRoot www/example/com

</VirtualHost>

<VirtualHost *:80>

    ServerName www.example.org

    DocumentRoot www/example/org

</VirtualHost>

根据DocumentRoot建立需要放置文件的文件夹:

sudo mkdir -p $APACHE_HOME/www/example/com

sudo mkdir -p $APACHE_HOME/www/example/org

 

配置好后,在com或org目录中创建个index.html   然后通过 http://www.example.com/index.html就可以正常访问了

 

这样创建的虚拟主机,只要httpd服务器接受到任何http链接,就会根据NameVirtualHost规则 来寻找相应的VirtualHost 找到后,判断此http请求的Host域 ,找到与之相等的ServerName.如果不能找到,则访问第一个虚拟主机,找到,则访问相关的VH.所以 此种建立方式的第一个虚拟主机一般用来作为后面主机的转发。

 

还有一种基于ip的虚拟主机,只需要配置多个 Listen [ip/host]:port就可以了