### Apache多端口配置及网站指向非Apache默认的网站文件夹设置详解
#### 一、Apache多端口配置概述
Apache作为一款广泛使用的Web服务器软件,支持多种配置方式来满足不同场景的需求。其中,多端口配置是Apache的一项重要功能,它允许在同一台服务器上运行多个独立的网站或应用服务,每个服务可以绑定到不同的端口号,从而实现资源的有效隔离与管理。
#### 二、多端口配置的关键概念
1. **虚拟主机(Virtual Host)**:在Apache中,通过设置虚拟主机可以在一台物理服务器上托管多个域名或网站。虚拟主机有两种类型:基于名称的虚拟主机和基于IP地址的虚拟主机。本文主要讨论的是基于名称的虚拟主机配置。
2. **NameVirtualHost**:该指令用于声明一个特定的端口或IP地址为名称虚拟主机。例如`NameVirtualHost *:80`表示所有对80端口的请求都将被视为名称虚拟主机。
3. **VirtualHost容器**:包含了虚拟主机的全部配置信息,包括文档根目录、服务器名等。
#### 三、配置示例解析
下面通过具体的配置示例来详细了解如何配置Apache多端口及非默认网站文件夹:
```apache
NameVirtualHost*:81
NameVirtualHost*:82
NameVirtualHost*:83
NameVirtualHost*:84
NameVirtualHost*:85
NameVirtualHost*:86
```
这段配置指定了六个端口(81至86)为名称虚拟主机端口,即所有对这些端口的请求都将被视为名称虚拟主机请求。
接下来,我们具体分析其中一个虚拟主机的配置:
```apache
<VirtualHost*:81>
ServerAdmin jsw7001@hotmail.com
DocumentRoot D:/AppServ/www/www-nongye
ServerName www.dede.com
ErrorLog D:/AppServ/www/www-nongye/errornongye.log
CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost>
```
1. **ServerAdmin**:指定虚拟主机的管理员邮箱地址,通常用于错误报告或联系。
2. **DocumentRoot**:指定了网站的根目录位置,这里设为了`D:/AppServ/www/www-nongye`,这意味着该虚拟主机将从这个路径提供文件。
3. **ServerName**:定义了该虚拟主机对应的域名,本例中为`www.dede.com`。对于基于名称的虚拟主机,客户端必须在HTTP请求中包含这个ServerName,否则请求将不会被匹配。
4. **ErrorLog**:指定了错误日志的存放位置。
5. **CustomLog**:定义了访问日志的格式和位置。
#### 四、其他虚拟主机配置实例
此外,还有其他几个虚拟主机的配置,如针对`82`端口的虚拟主机,其配置中包含了`Directory`指令,用于设置特定目录下的权限:
```apache
<VirtualHost*:82>
<Directory "D:/AppServ/www-chinaec">
Options FollowSymLinks
Allow from all
</Directory>
ServerAdmin jsw7001@hotmail.com
DocumentRoot D:/AppServ/www-chinaec
ServerName www.dede.com
DirectoryIndex index.php index.html
ErrorLog D:/AppServ/www-chinaec/errornongjiale.log
CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost>
```
- **Directory**:用于设置目录权限,这里的`Allow from all`表示允许所有来源访问该目录。
- **DirectoryIndex**:定义了网站启动时的默认索引页面。
#### 五、总结
通过以上解析,我们可以看出Apache的多端口配置及网站指向非默认网站文件夹设置相对简单明了,但细节处需要注意,比如正确设置`DocumentRoot`和`ServerName`等关键指令,以确保每个虚拟主机都能正常工作。此外,还可以根据实际需求调整更多的配置选项,以优化性能或增强安全性。