2014-04-09 13:00:01
来 源
ITJS.CN
Apache
本篇分享了Apache服务器使用不同端口配置多个虚拟主机站点,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。
1.监听端口

Apache启动时,会绑定本机上的地址和端口,然后等待请求的进入。默认情况下,它会监听本机的所有地址。但是,当需要监听特定的地址或端口或地址与端口的组合,或者需要对不同的IP地址、主机名、端口作出不同的响应(如使用虚拟主机)时,就必须明确指定。

Listen指令告诉服务器接只受来自特定端口(或地址+端口的组合)的请求。如果Listen指令仅指定了端口,则服务器会监听所有的IP地址;如果指定了地址+端口的组合,则服务器只监听来自此特定地址上特定端口的请求。使用多个Listen指令,可以指定在多个地址和端口上进行监听。

举例说明如下:

Listen 8002 (8002为要监听的端口)

2.设置要访问的目录的访问权限

<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。任何可以在"directory"作用域中使用的指令都可以使用。Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?"匹配任何单个的字符,"*"匹配任何字符序列。您也可以使用"[]"来确定字符范围。以上通配符都不能匹配"/"字符。所以<Directory public_html>能够正确匹配。

举例说明如下:

<Directory "E:/caixun/WorkingArea/Codes/Client/php2.0/futures/index">

#

# Possible values for the Options directive are "None", "All",

# or any combination of:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesn't give it to you.

#

# The Options directive is both complicated and important. Please see

# http://httpd.apache.org/docs/2.2/mod/core.html#options

# for more information.

#

Options Indexes FollowSymLinks Includes

#Options指令控制了在特定目录中将使用哪些服务器特性。

#option可以为None ,在这种情况下,将不启用任何额外特性。或设置为以下选项中的一个或多个:(介绍几个个人认为比较重要的,根据需要配置,不要开启用不到的选项,详细请参考apache手册)

#Indexes

#如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。

#FollowSymLinks

#服务器允许在此目录中使用符号连接。不知道符号链接?去学习linux。

#Includes

#允许使用mod_include提供的服务器端包含。

#

# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# Options FileInfo AuthConfig Limit

#

AllowOverride None

#AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。

#如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。

#当此指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。其他参数请参考apache手册。

#

# Controls who can get stuff from this server.

#

Order allow,deny

Allow from all

#Order指令控制默认的访问状态与Allow和Deny指令生效的顺序。Ordering取值范围是以下几种范例之一:

#Deny,Allow

#Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。

#Allow,Deny

#Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。

#Mutual-failure

#只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。

#关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。

#Allow指令控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。

#这个指令的第一个参数总是"from",随后的参数可以有三种不同形式:如果指定"Allow from all",则允许所有主机访问。详细说明请参考apache手册。

</Directory>

3.配置虚拟主机

<VirtualHost>和</VirtualHost>用于封装一组仅作用于特定虚拟主机的指令。任何在虚拟主机配置中可以使用的指令也同样可以在这里使用。当服务器接受了一个特定虚拟主机的文档请求时,它会使用封装在<VirtualHost>配置段中的指令。Addr可以是: 虚拟主机的IP地址

虚拟主机IP地址对应的完整域名

字符"*",仅与"NameVirtualHost *"配合使用以匹配所有的IP地址

字符串"_default_",与基于IP的虚拟主机联用以捕获所有没有匹配的IP地址

您可以指定一个":port"来改变匹配的端口。如果没有指定,它将沿用主服务器中离它最近的那个Listen指定的值。您也可以指定":*"来匹配那个地址上的所有端口(当您使用"_default_"时,这是推荐采用的方法)。

举例说明如下:

<VirtualHost 127.0.0.1:8002>

ServerAdmin [email protected]

DocumentRoot E:caixunWorkingAreaCodesClientphp2.0futuresindex

ServerName future.caixun.com

ErrorLog logs/host.foo.com-error_log

TransferLog logs/host.foo.com-access_log

</VirtualHost>

其中的指令很简单,就不一一说明了。本人也只知道皮毛,在各位大侠面前班门弄斧请勿见怪,只为了帮助初学者掌握,请不要拍板砖。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。