布置apache设想主机的实例计算,如何布置apache虚构主机的实例小结

by admin on 2019年8月1日

在windows二零零零下树立设想主机,我们都会了吧!在此地就不再说了,下边介绍一下在Linux使用下创建虚拟主机。

何以兑现apache设想主机配置。

### Section 3: Virtual Hosts 第三片段 设想主机

1、基于ip地址的虚构主机

首先,在网络去下三个apache的源程序(

1、基于ip地址的虚构主机
Listen 80
<VirtualHost 172.20.30.40>
DocumentRoot /home/httpd/html1
ServerName www.ok1.com
ErrorLog /usr/local/apache/logs/error1_log
布置apache设想主机的实例计算,如何布置apache虚构主机的实例小结。CustomLog /usr/local/apache/logs/access1_log combined
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /home/httpd/html2
ServerName www.ok2.com
ErrorLog /usr/local/apache/logs/error2_布置apache设想主机的实例计算,如何布置apache虚构主机的实例小结。log
CustomLog /usr/local/apache/logs/access2_log combined
</VirtualHost>
2、基于IP 和多端口的设想主机配置
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

留神:在运用虚拟主机前,请先反省
 http.conf 的 协理配置文件httpd-vhosts.conf 是或不是注释

复制代码 代码如下:

下载后化解安装,步向解压后的目录后,试行./configure –prefix=/httpd 
(*/httpd是你要安装在哪些目录,能够凭借自身供给自个儿设定)

<VirtualHost 172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
</VirtualHost>
<VirtualHost 172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example2.org
</VirtualHost>
3、单个IP 地址的服务器上根据域名的虚构主机配置
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>
一旦您感到方面包车型客车篇章还远远不够详细能够看下上面包车型客车稿子:

#
Virtual hosts
#Include conf/extra/httpd-vhosts.conf

Listen 80
<VirtualHost 172.20.30.40>
    DocumentRoot /home/httpd/html1
    ServerName www.ok1.com
    ErrorLog /usr/local/apache/logs/error1_log
    CustomLog /usr/local/apache/logs/access1_log combined
</VirtualHost>
<VirtualHost 172.20.30.50>
    DocumentRoot /home/httpd/html2
    ServerName www.ok2.com
    ErrorLog /usr/local/apache/logs/error2_log
    CustomLog /usr/local/apache/logs/access2_log combined
</VirtualHost>

下一场实行make

奉行目的:在apache完结基于域名的虚构主机
尝试用的XAMPP版本为1.7.7,内含apache版本为2.2.21

此命令是不是被解说,若被讲解,请先去除 Include前的
#,使设想主机配置生效。

 2、基于IP 和多端口的虚构主机配置

再执行make install

试验前妄想:
1.

下一场张开Apache目录下 /conf/extra/httpd-vhosts.conf
 此文件  开底布署

复制代码 代码如下:

通过几分钟的等候后,apache就设置好了。

为了测量检验不一致的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在当中增多实验用的域名若干,如

127.0.0.1 test1.net
127.0.0.1 test2.net
与上述同类,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中访问localhost,
test1.net, test2.net均可访谈XAMPP的款待页。
2.
在apache目录下创建目录,以放置您不一致的网址。为保养XAMPP原有的htdocs中的迎接页内容,实验别的建设构造了与htdocs平级的htdocs1索引,在其下创设了test1.net,
test2.net七个子目录用以放置实验用的网址。如下 –
apache/htdocs1/test1.net – 放置test1.net网址内容
apache/htdocs1/test2.net – 放置test2.net网址内容
在那多个目录中各新建hello world一网页 index.html,内容 –
<HTML>
<HEAD></HEAD>
<BODY>
<H1>hello~,
这是[对应的网址名,用以分歧].net</H1></BODY>
home88一必发,</HTML>
施行步骤:

  1. 找到apache/conf/httpd.conf, 将中间的
    ServerAdmin
    ServerName
    DocumentRoot
    注释掉。

  2. 在httpd.conf中,找到行
    Include “conf/extra/httpd-vhosts.conf”
    如被批注则解注。该公文记载了虚构主机的参数。[原先设想主机参数是直接填写在httpd.conf中的,为了更加好地公司文件,将其分手出去,类似于一些编制程序语言一样。因而httpd.conf中include它,即一定于把它的开始和结果填在了httpd.conf中。]

  3. 以此httpd-vhosts.conf文件格式基本如下 –
    #blah-blah
    NameVirtualHost *:80
    #blah-blah
    #blah-blah
    <VirtualHost *:80>
    ServerAdmin XXXXXXXX
    DocumentRoot “XXXXXXXX”
    ServerName XXXXXXX
    ServerAlias XXXXXX
    ErrorLog “logs/XXXXXX-error.log”
    CustomLog “logs/XXXXXXX-error.log” combined
    </VirtualHost>
    亟待修改的,正是<VirtualHost>中的参数了。这些能够参见apache官方文档。遵照实验域名,能够扩充七个<VirtualHost>:
    <VirtualHost *:80>
    ServerAdmin adm@test1.net
    DocumentRoot “C:/xampp/htdocs1/test1.net”
    ServerName test1.net
    ServerAlias www.test1.net
    ErrorLog “logs/test1-error.log”
    CustomLog “logs/test1-access.log” combined

<Directory “C:/xampp/htdocs1/test1.net”>
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin adm@test2.net
DocumentRoot “C:/xampp/htdocs1/test2.net”
ServerName test2.net
ServerAlias www.test2.net
ErrorLog “logs/test1-error.log”
CustomLog “logs/test1-access.log” combined

<Directory “C:/xampp/htdocs1/test2.net”>
order allow,deny
allow from all
</Directory>
</VirtualHost>
小心,即使不在各VirtualHost中定义Directory的可访问性,你将蒙受的是Access
Forbidden!就连原本的localhost也是。

  1. 出于事先注释掉了httpd.conf中的ServerName,
    DocumentRoot等,为了依旧能以localhost访问原XAMPP迎接页,就在追加二个VirtualHost,如下
  • <VirtualHost *:80>
    ServerAdmin adm@localhost
    DocumentRoot “C:/xampp/htdocs”
    ServerName localhost

ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” combined

<Directory “C:/xampp/htdocs”>
order allow,deny
allow from all
</Directory>
</VirtualHost>
为了防止失误,把它放置在首先个Virtualhost位置。

迄今停止,apache基于域名的虚构主机配置实现。能够由此
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most
configurations
# use only name-based virtual hosts so the server doesn’t need to worry
about
# IP addresses. This is indicated by the asterisks in the directives
below.
#
# Please see the documentation at
# <URL:;
# for further details before you try to setup virtual hosts.
#
# You may use the command line option ‘-S’ to verify your virtual
host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot “E:/jbxue/apache2/htdocs”
ServerName localhost
ServerAlias www.jbxue.com
ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” combined

<Directory “E:/jbxue/apache2/htdocs”>
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot “E:/jbxue/apache2/htdocs/project1”
ServerName project1.com
ServerAlias www.project1.com
ErrorLog “logs/project1-error.log”
CustomLog “logs/project1-access.log” combined

<Directory “E:/jbxue/apache2/htdocs/project1”>
order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot “E:/jbxue/apache2/htdocs/jbxue/public”
ServerName jbxue.com
ServerAlias www.jbxue.com
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot “E:/jbxue/apache2/htdocs/jbxue”
ServerName jbxue.com
ServerAlias www.jbxue.com
# DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kongdaoxian@gmail.com
DocumentRoot “E:/jbxue/apache2/htdocs/test”
ServerName test.com
ServerAlias www.test.com
ErrorLog “logs/jbxue-error.log”
CustomLog “logs/jbxue-access.log” combined

<Directory “E:/jbxue/apache2/htdocs/test”>
order allow,deny
allow from all
</Directory>
</VirtualHost>

# VirtualHost: If you want to maintain multiple domains/hostnames on
your 设想主机:假诺你想维持七个域名和主机在您的机器上,你可

Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

接下去,就是改动apache的布署。

# machine you can setup VirtualHost containers for them. Most
configurations 设置虚构主机。大多数布置音讯只行使基于名字的虚构主机

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

cd /httpd/conf

# use only name-based virtual hosts so the server doesn’t need to worry
about 因而服务器
不必顾虑IP地址的主题材料

 DocumentRoot /www/example1-8080
 ServerName www.example1.com
</VirtualHost>
<VirtualHost 172.20.30.50:80>
 DocumentRoot /www/example2-80
 ServerName www.example1.org
</VirtualHost>
<VirtualHost 172.20.30.50:8080>
 DocumentRoot /www/example2-8080
 ServerName www.example2.org
</VirtualHost>

vi httpd.conf

# IP addresses. This is indicated by the asterisks in the directives
below. 上边包车型地铁通令以*号代替设想主机名

3、单个IP 地址的服务器上遵照域名的设想主机配置

要改动的地方是:(比方笔者的IP是220.188.118.118)

#

复制代码 代码如下:

ServerName 220.188.118.118

# Please see the documentation at 请参谋文书档案 地址……

# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>

然后在文书里投入

# <URL:;

一旦你以为方面包车型地铁稿子还缺乏详细能够看下上边包车型客车小说:

NameVirtualHost 220.188.118.118

# for further details before you try to setup virtual hosts. 在你设置设想主机前请垂询详细意况

试验对象:在apache完毕基于域名的虚构主机
实施用的XAMPP版本为1.7.7,内含apache版本为2.2.21

<VirtualHost 220.188.118.118>

#

实验前准备:

ServerAdmin linuxidc@linuxidc.com

# You may use the command line option ‘-S’ to verify your virtual
host 你能够用命令行选项 -S
来核算你虚构主机的安顿

1.

DocumentRoot /httpd/webserver/docs

# configuration.

为了测验分化的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在里面增添实验用的域名若干,如

复制代码 代码如下:

127.0.0.1   test1.net
127.0.0.1   test2.net

诸有此类,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中采访localhost,
test1.net, test2.net均可访谈XAMPP的款待页。

2.
在apache目录下创设目录,以放置您分歧的网址。为爱惜XAMPP原有的htdocs中的招待页内容,实验其余创建了与htdocs平级的htdocs1索引,在其下创设了test1.net,
test2.net七个子目录用以放置实验用的网址。如下 –
apache/htdocs1/test1.net – 放置test1.net网址内容
apache/htdocs1/test2.net – 放置test2.net网址内容

 在那三个目录中各新建hello world一网页 index.html,内容 –

复制代码 代码如下:

<HTML>
<HEAD></HEAD>
<BODY>
<H1>hello~,
这是[相应的网址名,用以不一致].net</H1></BODY>
</HTML> 

尝试步骤:

  1. 找到apache/conf/httpd.conf, 将中间的

ServerAdmin
ServerName
DocumentRoot
注释掉。

  1. 在httpd.conf中,找到行

 Include “conf/extra/httpd-vhosts.conf”
如被批注则解注。该公文记载了设想主机的参数。[先前虚构主机参数是直接填写在httpd.conf中的,为了越来越好地集团文件,将其分手出去,类似于少数编制程序语言一样。由此httpd.conf中include它,即一定于把它的剧情填在了httpd.conf中。]

  1. 以此httpd-vhosts.conf文件格式基本如下 –

复制代码 代码如下:

#blah-blah
NameVirtualHost *:80
#blah-blah
#blah-blah
<VirtualHost *:80>
    ServerAdmin XXXXXXXX
    DocumentRoot “XXXXXXXX”
    ServerName XXXXXXX
    ServerAlias XXXXXX
    ErrorLog “logs/XXXXXX-error.log”
    CustomLog “logs/XXXXXXX-error.log” combined  
</VirtualHost>

亟待修改的,正是<VirtualHost>中的参数了。那个能够参见apache官方文书档案。根据实验域名,能够追加八个<VirtualHost>:

复制代码 代码如下:

<VirtualHost *:80>
    ServerAdmin adm@test1.net
    DocumentRoot “C:/xampp/htdocs1/test1.net”
    ServerName test1.net
    ServerAlias www.test1.net
    ErrorLog “logs/test1-error.log”
    CustomLog “logs/test1-access.log” combined

    <Directory “C:/xampp/htdocs1/test1.net”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin adm@test2.net
    DocumentRoot “C:/xampp/htdocs1/test2.net”
    ServerName test2.net
    ServerAlias www.test2.net
    ErrorLog “logs/test1-error.log”
    CustomLog “logs/test1-access.log” combined

    <Directory “C:/xampp/htdocs1/test2.net”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>

专注,假如不在各VirtualHost中定义Directory的可访谈性,你将超过的是Access
Forbidden!就连本来的localhost也是。

  1. 由于从前注释掉了httpd.conf中的ServerName,

    DocumentRoot等,为了还是能以localhost访问原XAMPP应接页,就在增加三个VirtualHost,如下

复制代码 代码如下:

<VirtualHost *:80>
    ServerAdmin adm@localhost
    DocumentRoot “C:/xampp/htdocs”
    ServerName localhost

    ErrorLog “logs/localhost-error.log”
    CustomLog “logs/localhost-access.log” combined

    <Directory “C:/xampp/htdocs”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>

为了防止失误,把它放置在第一个Virtualhost地点。

从那之后,apache基于域名的虚构主机配置实现。能够经过

#
# Virtual Hosts
#

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most
configurations
# use only name-based virtual hosts so the server doesn’t need to worry
about
# IP addresses. This is indicated by the asterisks in the directives
below.
#
# Please see the documentation at
# <URL:;
# for further details before you try to setup virtual hosts.
#
# You may use the command line option ‘-S’ to verify your virtual
host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot “E:/skydao/apache2/htdocs”
    ServerName localhost
    ServerAlias www.skydao.com
    ErrorLog “logs/localhost-error.log”
    CustomLog “logs/localhost-access.log” combined

    <Directory “E:/skydao/apache2/htdocs”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot “E:/skydao/apache2/htdocs/project1”
    ServerName project1.com
    ServerAlias www.project1.com
    ErrorLog “logs/project1-error.log”
    CustomLog “logs/project1-access.log” combined

    <Directory “E:/skydao/apache2/htdocs/project1”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot “E:/skydao/apache2/htdocs/zendTest/public”
    ServerName zendTest.com
    ServerAlias www.zendTest.com
    DirectoryIndex index.php
    <Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
    </Directory>   
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot “E:/skydao/apache2/htdocs/testRewrite”
    ServerName testRewrite.com
    ServerAlias www.testRewrite.com
    # DirectoryIndex index.php
    <Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
    </Directory>   
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot “E:/skydao/apache2/htdocs/test”
    ServerName test.com
    ServerAlias www.test.com
    ErrorLog “logs/zendTest-error.log”
    CustomLog “logs/zendTest-access.log” combined

    <Directory “E:/skydao/apache2/htdocs/test”>
    order allow,deny
    allow from all
    </Directory>   
</VirtualHost>

ServerName 220.188.118.118

#

您恐怕感兴趣的稿子:

  • Apache
    设想目录和暗中认可首页的装置
  • apache中伪静态配置和使用(Apache虚构主机下Discuz伪静态)
  • 地面机apache配置基于域名的虚构主机详解
  • Apache
    加多虚构目录注意事项
  • windows
    apache多端口虚构主机配置格局
  • apache设想主机中装置泛域名剖析的艺术
  • apache虚构机配置步骤和更换访谈端口的方法(设想机端口映射)
  • Apache 配置多端口 多设想主机
    局域网访谈示例
  • Apache
    多站点虚构主机配置格局
  • win10
    apache配置设想主机后localhost不能够使用的减轻办法

</VirtualHost>

# Use name-based virtual hosting. 动用基于名字的虚构主机

#

#

<VirtualHost 220.188.118.118>

#NameVirtualHost *:80
**
借使您要布局基于域名的虚构主机,就算是基于ip地址的能够将本行注释。
NameVirtualHost
命令正是你必须的指令之一。尽管addr参数可以选用主机名,但提出你依然使用IP地址。举例:
NameVirtualHost 111.22.33.44
请留心,<VirtualHost>指令的参数必须与NameVirtualHost指令的参数完全相称。
NameVirtualHost 1.2.3.4
<VirtualHost 1.2.3.4>**

ServerAdmin linuxidc@linuxidc.com

#

DocumentRoot /httpd/webserver/www.linuxidc.com

# NOTE: NameVirtualHost cannot be used without a port specifier 只顾:命名设想主机未有一点点名端口无法运用

ServerName www.linuxidc.com

# (e.g. :80) if mod_ssl is being used, due to the nature of the 比方(xxx:80) 假设应用ssl模块,是因为SSL协议的品质

</VirtualHost>

# SSL protocol.

#

#

<VirtualHost 220.188.118.118>

#

ServerAdmin linuxidc@linuxidc.com

# VirtualHost example: 设想主机
例子

DocumentRoot /httpd/webserver/www.test2.com

# Almost any Apache directive may go into a VirtualHost
container. 大约任何apache指令都得以插手虚构主机容器

ServerName www.test2.com

# The first VirtualHost section is used for requests without a
known 第三个虚构主机用于
没有已知服务器域名的伸手

</VirtualHost>

# server name.

中间:NameVirtualHost
220.188.118.118很注重,未有这些,虚构主机是不能创建成功的。在此处,作者创建了七个域名字为www.linuxidc.com和www.test2.com的虚构主机。

#

配置达成之后,存盘建出,然后,在/httpd下成立webserver的目录,踏向目录后,再建构docs、www.linuxidc.com、www.test2.com那多个目录。

#<VirtualHost *:80> 增添实例

docs目录是用来一向输入IP时所设置的页面目录,其余三个,是输入域名时所访问的目录。

# ServerAdmin webmaster@dummy-host.example.com 领队邮箱

接下去,正是在几个目录里,分别归入内容见仁见智的index.html文件。

# DocumentRoot /www/docs/dummy-host.example.com 文书档案根目录

进入/httpd/bin启动apache。

# ServerName dummy-host.example.com 服务器名字(域名)

好了,若无报错,就表明成功了二分一。接下来,其他找一台计算机,在IE里输入www.linuxidc.com和www.test2.com,即便展现的是八个不等的页面,就注明已经设置成功。

# ErrorLog logs/dummy-host.example.com-error_log 荒唐日志

PS:什么?未有www.linuxidc.com和www.test2.com那多个域名?呵呵,那您在您使用的微型Computer的C:\WINDOWS\system32\drivers\etc\hosts文件里投入

# CustomLog logs/dummy-host.example.com-access_log common 对服务器的哀求进行记录的日记

220.188.118.118 www.linuxidc.com

#</VirtualHost>

220.188.118.118 www.test2.com

这两行。

home88一必发 1

补偿:设想主机有二种配备方式  基于IP  
基于端口  基于域名

1.遵照分化IP

证实:在实际上条件中,一般服务器没那么多公网IP,何况我们一般都是用域名访问的.所以那一个其实用途比很小.可是能够用来测量检验和上学,以便深刻理解apache运转规律。

 1.
只要服务器有个IP地址为192.168.1.1,使用ifconfig在同三个互连网接口eth0上再绑定3个IP:(那几个子接口ip都为有的时候扩张,重启后消退)
(能够将那个命令插足开机运营项中,也能够在/etc/sysconfig/network-scripts中扩展三个文件ifcfg-eth0:1)

[root@localhost root]# ifconfig eth0:1 192.168.1.2
netmask 255.255.255.0
[root@localhost root]# ifconfig eth0:2 192.168.1.3 netmask
255.255.255.0
[root@localhost root]# ifconfig eth0:3 192.168.1.4 netmask
255.255.255.0

举个例子是旧版本的apache
则要修改httpd.conf 文件,查究 Include
conf/extra/httpd-vhosts.conf 将前边的#号去掉,

下一场修改虚构主机配置文件 Apache/Conf/extra/httpd-vhosts.conf
 增添以下代码 (新本子的apache直接修改httpd.conf文件,增多以下代码)

<VirtualHost 192.168.1.2:80>
    ServerAdmin webmaster@dummy-host.example.com           (能够省略,省略后按默许设置)
    DocumentRoot /www/test1
    ServerName 192.168.1.2
    ErrorLog logs/dummy-host.example.com-error_log         (能够简轻易单,省略后按私下认可设置)
    CustomLog logs/dummy-host.example.com-access_log common(可以总结,省略后按默许设置)
      **
<Directory
“/www/test1”>                           (能够回顾或更改访谈权限,暗中认可允许)
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All
     </Directory>
</VirtualHost>
**

 

 

<VirtualHost
192.168.1.2:80>    (最简添加格局)
   DocumentRoot /www/test2
   ServerName 192.168.1.2
**
</VirtualHost>**

 

 

<VirtualHost 192.168.1.3:80> 
  DocumentRoot /www/test3
  ServerName 192.168.1.3

 
<Directory “/www/test3”> (在此间配置访谈权限)
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow From All

**        
Deny From 192.168.1.10
 </Directory>

**</VirtualHost>

这里首要说下 ServerName 选项

在实操中,在这种情景下并无需域名访问,接纳的是全然以实际IP举行访谈.相应的ServerName那个字段应该是向来不意义的.事实也标记了作者们布置任何值都以足以由此的.

 

重启http时或许报错

1.Starting httpd: httpd: Could not reliably determine the server’s fully
qualified domain name, using localhost.localdomain for ServerName
(不能够明显服务器主域名,请使用localhost.localdomain 做为服务器名)
涸泽而渔办法:这些难题就在于未有在httpd.conf 中設定
ServerName ,假使您真未有域名的话,找到#ServerName www.example.com:80  
把#去掉,再重启apache
就好了。假若有的话,根据你的莫过于情况修改为本机的IP只怕域名

2.Name or service not known: Failed to resolve server name for
10.0.7.101 (check DNS) — or specify an explicit ServerName
(未知的名字或服务:处理10.0.7.101服务器域名退步。检查DNS设置,或内定三个详实的劳务器域名)

杀鸡取卵措施:检查在上头的虚构主机设置中,有未有ServerName挑选,并将其值改为设想主机IP

 

 

2.根据分裂的端口

因而拜望同三个IP(只怕域名)的分裂端口来访谈到不一致的文件

对httpd.conf做如下修改

增添监听口

Listen 80

Listen 8001

Listen 8002

将在此以前做的多域名虚构主机去掉(因为那时候是用IP加端口来访问的),即

# Use name-based virtual hosting.

#

# NameVirtualHost
*
 注释掉那句话

以下是虚拟主机配置(注意上边包车型大巴布局地分自个儿并没用ServerName字段)

<VirtualHost *:8001>

ServerAdmin** [xxx@xxx.com**](mailto:xxx@xxx.com) (能够省略)

DocumentRoot
/var/www/7.101

</VirtualHost>

<VirtualHost *:8002>

ServerAdmin** [xxx@xxx.com**](mailto:xxx@xxx.com) (可以简轻易单)

DocumentRoot /var/www/7.102

</VirtualHost>

 

 

 

那边根本说下防火墙难点

假定未有布置经验请关闭seLinux和iptables五个防火墙

关闭selinux:修改/etc/selinux/config找到SELINUX=enforcing
修改为SELINUX=disable,然后reboot即可。
贰回性的推行命令setenforce 0,那样不用重启,也能够生效。

关闭iptables:service iptables
stop

重启http时可能报错

1.Permission denied: make_sock: could not bind to address

缓慢解决格局:查看上述五个防火墙是否关闭,一般为防火墙难点;还应该有便是用户权限难题,查看当前用户有无权限。

 

 

3.依照区别的域名

这是在事实上使用中最常蒙受的,八个apache服务器上停放四个网址,以分歧的域名来分裂

在测量检验情况中,大家修改/etc/hosts文件
增加大家域名深入分析的消息,方便大家测验

10.0.7.100  www.example.com
10.0.7.100  www1.example.com
10.0.7.100  www2.example.com

修改httpd.conf的配置
# Use name-based virtual hosting.
#
NameVirtualHost *  

那是非常关键的一条指令,正是该指令激活了依赖名字的虚构主机的遵从

代表在apache监听的有所IP和具备端口(此时独有80)上做多域名虚构主机,也能够独自设定开启域名虚构主机的ip(NameVirtualHost
10.0.7.100:80)

<VirtualHost *:80>
    ServerAdmin xxx@xxx.com
    DocumentRoot /var/www/7.100
    ServerName www.example.com

    ErrorLog logs/ error_log 
    TransferLog logs/ access_log
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin xxx@ixxx.com
    DocumentRoot /var/www/7.101
    ServerName  www1.example.com

    ErrorLog logs/error_log
    TransferLog logs/access_log
</VirtualHost>

<VirtualHost *:80>
ServerAdmin xxx@ixxx.com
DocumentRoot /var/www/7.102
ServerName www2.example.com

ErrorLog logs/error_log
TransferLog logs/access_log
</VirtualHost>

那边要入眼表明的便是 NameVirtualHost
*  
慎选的装置,它表示在apache监听的哪些IP和哪些端口上做多域名虚构主机

*#NameVirtualHost \:80

**假设你要配备基于域名的虚构主机,
NameVirtualHost
一声令下正是你必须的通令之一。纵然addr参数能够行使主机名,但提出您如故利用IP地址。比如:
NameVirtualHost 111.22.33.44
请细心,<VirtualHost>指令的参数必须与NameVirtualHost指令的参数完全相配。
NameVirtualHost 1.2.3.4:80
<VirtualHost 1.2.3.4:80>
 留意:命名虚构主机未有一点名端口无法动用

 

 

 

布置实例:

本身用三种办法同时布置一台apache,以此来比较此中差别

10.0.7.100:80
10.0.7.100:8001
10.0.7.101:80      www.example.com    www1.example.com     
www2.example.com

在10.0.7.100上使用基于不相同端口的虚构主机(八个端口)
在10.0.7.101上采取基于不一样名字的设想主机(多个域名)
那也是七个IP地址
共五台虚构主机,均运用最简配置

 

首先扩张三个IP地址:
ifconfig eth0:1 10.0.7.101 netmask 255.255.255.0(
也得以在/etc/sysconfig/network-scripts中追加三个文书ifcfg-eth0:1

充实各种虚构主机对应的文本夹

**修改/etc/hosts文件 增加我们域名分析的音信,方便大家测验
10.0.7.101 www.example.com
10.0.7.101 www1.example.com
10.0.7.101 www2.example.com

修改httpd.conf 文件,监听本机全数ip地址的80和8001端口:
Listen 80
Listen 8001**

陈设设想主机部分:

NameVirtualHost  10.0.7.101:80     钦定在这一个ip的80端口上运转基于分化域名的虚构主机

<VirtualHost 10.0.7.100:80>
          DocumentRoot /var/www/html         
         ServerName 10.0.7.100
</VirtualHost>

<VirtualHost 10.0.7.100:8001>
         DocumentRoot  /var/www/8001
        ServerName 10.0.7.100
</VirtualHost>

<VirtualHost 10.0.7.101:80>
         DocumentRoot /var/www/www
        ServerName www.example.com 
</VirtualHost>

<VirtualHost 10.0.7.101:80>
        DocumentRoot /var/www/www1
       ServerName www1.example.com 
</VirtualHost>

<VirtualHost 10.0.7.101:80>
       DocumentRoot /var/www/www2
       ServerName www2.example.com 
</VirtualHost>

 

重启apache
service httpd restart

结果

home88一必发 2

 

home88一必发 3

 

home88一必发 4

 

home88一必发 5

 

home88一必发 6

 

 

布局实例:

对此在10.0.7.101上的三台基于名称虚构主机 www.example.com 
www1.example.com  www2.example.com 

假如大家使用ip
10.0.7.101探望,结果会合营到httpd.conf中地点最靠前的www.example.com 那台虚构主机上。

 

今天须要不能应用ip地址访谈只得使用域名访谈

 

斩草除根1:设置叁个错误提醒页面,提醒用户使用域名访谈

新扩充一台设想主机,将ip访谈定位到此地 
<VirtualHost 10.0.7.101:80>
      DocumentRoot /var/www/error
(将error下的index.html内容改为
“请使用域名访谈,域名是……”)
      ServerName 10.0.7.101                   (这里明确将域名改为IP地址)
</VirtualHost>

自然将以此虚构主机放在
基于名称访问的持有设想主机 最前的职位

 

解决2:使用apache互联网容器 <Location>
新增一台虚构主机,将ip访谈定位到此地 
 <VirtualHost 10.0.7.101:80>
       DocumentRoot /var/www/www
      ServerName 10.0.7.101                   
(这里分明将域名改为IP地址)
      <Location />                                     (配置location互连网容器)
          Order allow,deny
          Deny from all
      </Location>
</VirtualHost>

一定将以此虚构主机放在
基于名称访问的有着虚构主机 最前的岗位

 

化解3:使用apache文件容器 <Directory>
新扩大一台虚构主机,将ip访谈定位到这里 
<VirtualHost 10.0.7.101:80>
   DocumentRoot /var/www/www
   ServerName 10.0.7.101                             
(这里分明将域名改为IP地址)
    <Directory /var/www/www>                  (配置Directory容器)
        Order allow,deny
        Deny from all
   </Directory>
</VirtualHost>

也将以此虚构主机放在
基于名称访谈的有着设想主机 最前的岗位

 

apache的器皿 <Location>
<Directory>放在另一篇中讲

 注意:主配置文件中的域名要是也亟需拜望,能够行使下列方式

<VirtualHost 10.0.7.101:80>
   DocumentRoot /var/www/www
   ServerName *             
</VirtualHost>

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图