/etc/apache2# ls
apache2.conf envvars mods-available ports.conf sites-enabled
conf.d httpd.conf mods-enabled sites-available
其中ports.conf控制listen
多ip可做虚拟主机
详细:
有两种配置方法来使apache支持多主机:为每个虚拟主机运行不同的httpd守护进程;或者用同一个守护进程来支持所有虚拟主机。
以下情况使用多个守护进程:
出于安全的考虑,比如说公司甲不希望公司乙的任何人能用除web以外的方式访问到他们的数据。在这种情况下,您需要启动两个守护进程。每个进程都使用不同的User, Group, Listen, ServerRoot设置。
您能够为机器上的每个IP地址提供内存和文件描述符需求。您只能Listen一个"通配符型"地址或一个特定的地址。所以不管出于什么原因,如果您需要侦听一个特定的地址,您就必须同时侦听所有特定的地址。(尽管可以让一个httpd侦听N-1个地址,而让另一个侦听剩下的地址)
以下情况使用单一守护进程:
httpd的配置可以为多个虚拟主机共享而不引起麻烦。
机器要接受大量的访问请求,从而多启动一个守护进程会导致性能大幅度降低。
设置多个守护进程
为每个虚拟主机创建一个不同的httpd安装。每次安装都在配置文件中使用Listen指令指定守护进程伺服的IP地址(或虚拟主机)。比如:
Listen www.smallco.com:80
建议您使用IP地址来取代域名(理由请参见关于DNS和Apache)。
配置拥有多个虚拟主机的单一守护进程
在这种情况下,单一的httpd将伺服所有对主服务器和虚拟主机的请求。而配置文件中的VirtualHost指令将为每个虚拟主机配置不同的ServerAdmin, ServerName, DocumentRoot, ErrorLog, TransferLog, CustomLog 。例如:
<VirtualHost www.smallco.com>
ServerAdmin [email protected]
DocumentRoot /groups/smallco/www
ServerName www.smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>
<VirtualHost www.baygroup.org>
ServerAdmin [email protected]
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
建议您使用IP地址来取代域名(理由请参见关于DNS和Apache)。
除了创建进程的指令和其他一些指令外,几乎所有的配置指令都能用于<VirtualHost>指令中。您可以使用指令索引在作用域中查询一个指令是否可以用于<VirtualHost>指令。
设置Apache2 网页目录
默认的web网页目录在/var/www/
定义在/etc/apache2/sites-enabled/000-default中,我在前面把网页目录定在“/var/web“,因此修改如下:
# nano /etc/apache2/sites-enabled/000-default
如DocumentRoot /var/www/改为 DocumentRoot /var/web/
注释掉Indexs和重定向 RedirectMatch:
NameVirtualHost *
......
DocumentRoot /var/web/
......
......
# RedirectMatch ^/$ /apache2-default/
......
......
三、网站资料上传
最后,把网页文件上传到/var/web/里面即可。
关闭apache版本信息
使用ServerTokens 指令
编辑/etc/apache2/apache2.conf
语法: ServerTokens Major|Minor|Minimal|ProductOnly|OS|Full
默认值: ServerTokens Full
上下文: 服务器配置
状态: 核心
模块: core
此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息。
ServerTokens Prod[uctOnly]
服务器会发送(比如说):Server:Apache
ServerTokens Major
服务器会发送(比如说):Server:Apache/2
ServerTokens Minor
服务器会发送(比如说):Server:Apache/2.0
ServerTokens Min[imal]
服务器会发送(比如说):Server:Apache/2.0.41
ServerTokens OS
服务器会发送(比如说):Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified)
服务器会发送(比如说):Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
此设置将施用与整个服务器,而且不能在虚拟主机的管理层次上予以启用或禁用。
ServerSignature 指令说明: 配置服务器生成页面的页脚
语法: ServerSignature On|Off|EMail
默认值: ServerSignature Off
上下文: 服务器配置, 虚拟主机, 目录, .htaccess
覆盖项: All
状态: 核心
模块: core
ServerSignature指令允许您配置服务器端生 成文档的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)。您启用这个页脚的原因主要在于处于一个代理服务器链中的时候,用户基本无法辨识出究竟是链中的哪个服务器真正产生了返回的错误信息。
默认的Off设定没有错误行(这样便与Apache 1.2及更旧版本兼容)。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会如文档中说明的那样额外创建一个指向ServerAdmin的"mailto:"部分。