Apache简介:
Apache是一款著名的web服务器的软件。它是实现HTTP协议 的一个工具,而httpd则是Apache超文本传输协议服务器的主程序。
下面我来说说Apache的配置文件(非常重要)
1, 配置文件总体分为3个部分:
Section1: Global Environment
功能: 控制Apache服务器进程的全局操作的
Section2: 'Main' server configuration
功能: 提供主服务器(默认为主服务器)的配置
Section3: Virtual Hosts
功能: 提供虚拟服务器配置的
注意:默认状态下,主服务器启用,主服务器和虚拟服务器不能同时启用,需要启用虚拟服务器则先关闭主服务器。
2,Section1段的主要内容:
ServerTokens OS
功能:显示Apache的版本和操作系统的名称
serverRoot "/etc/httpd"
功能:设置服务器的根目录为/etc/httpd
PidFile run/httpd.pid (注意:此处为相对路径,绝对路径前面要加/etc/httpd)
功能:指定Apache服务器进程的进程号文件存放的位置为:/etc/httpd/run/httpd.pid
Timeout 300
功能: 指定连接超时间隔为300s
Keeplive Off
功能: 设置是否允许持久连接,Off为不允许持久连接,且默认一次请求只能传输一个文件。
MaxKeepAliveRequest 100
功能: 设置一次持久连接最多接受的请求数为100,0则表示无限制
KeepAliveTimeout 15
功能: 表示 一次持久连接的超时时间为15s
StartServers 8 //服务器开启时,启动的服务器子进程为8个
MinSpareServers 5 //最小空闲服务器子进程为5个
MaxSpareServers 20 //最大空闲服务器子进程为20个
ServerLimit 256 //允许服务器进程数最多为256个
MaxClients 256 //允许同时相应的客户端数为256个
MaxRequestsPerChild 4000 //允许一个服务器子进程最多相应的服务请求数为4000个
Listen 80 功能: 设置监听端口为80端口,且可以设置如下:IP:80这样的形式,指明那个IP的80端口
3,Section2段的主要内容如下:
User Apache
Group AApche
功能: 提供Apache运行时的身份及所属属组分别为用户:Apache 基本组:Apache
ServerAdmin root@localhost
功能: 设置Apache的服务器管理员的邮箱
ServerName {IP|域名}:80 // 如果此处为域名则需要DNS服务器的支持
功能: 设置Apache默认站点的名称和端口号
UseCanonicalName Off
功能: 设置是否使用规范名称。当值为Off时,表示使用客户端提供的主机名和端口号
当值为On时,表示使用ServerName 设置的值
DocumentRoot "/var/www/html"
功能: 设置默认web站点的文档根目录,网站上的页面文件都是存放在此根目录下的
Options FollowSymLinks
AllowOverride None
功能: 根目录的访问控制,
Options Indexes FollowSymLinks //允许跟随符号连接,其中Indexes的含义是,如果要访问的页面文档不存在,则显示文档根目录下的文件目录清单
AllowOverride None //不允许覆盖当前配置,也就是不处理.htaccess文件
Order allow,deny //访问控制的顺序,先allow后deny
Allow from all // 允许所有主机访问
功能:对文档根目录的访问控制
UserDir disabled
功能:默认禁用个人主页,而UserDir disable则是开放个人主页面
AccessFileName .htaccess
功能: 指明每个目录中访问控制文件的名称为.htaccess
HostnameLookups Off
功能: 设置在日志中记录的是客户的名称还是IP地址,Off则记录IP地址,On则记录名称
ErrorLog Logs/error_log
功能: 指定错误日志的存放位置
LogLevel warn
功能: 指定日志记录的基本为警告
CustomLog logs/access_log combined
功能: 指定访问日志的位置及类型
日志的格式
%h: 客户端地址
%l: 远程登录名,通常为-
%u: 认证时输入用户名,没有认证时为-
%t: 服务器收到 用户请求时的时间
%r:请求报名的起始行
%>s: 响应状态码
%b: 响应报文的长度,单位是字节
%{HEADER_NAME}i: 记录指定首部对应的值
ServerSignature On
功能: 在服务器产生的页面中增加一行,显示内容为;服务器的版本和虚拟主机的名称
Alias /icons/ "/var/www/icons/"
功能: 定义/icons/ 为/var/www/icons的别名,
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
功能: 定义脚本别名,即将/cgi-bin/ 是 /var/www/cgi-bin/的别名
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
功能: 设置自动生成目录列表的显示方式,
FancyIndexing // 对每种类型的文件前加一个小图标加以区别
VersionSort // 对同一个软件的多个版本进行排序
NameWidth=* // 文件名字段自动适应当前目录下的最长文件名
AddDefaultCharset UTF-8
功能:字符集的设置,默认设置为UTF-8
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#
功能: 设置Apache可以报告详细的服务器状态信息。
Section3:主要说虚拟机主机的配置:
主要有3种,基于IP的虚拟主机,基于端口的虚拟主机,基于名字的虚拟主机。
虚拟主机不能和主服务器同时开启,所有要注释掉虚拟主机
注释主服务器的站点根路径指定:DocumentRoot
定义虚拟主机
NameVirtualHost IP:PORT
ServerName 服务名称
DocumentRoot 根目录
ServerAlias 服务别名
ErrorLog 错误日志
CustomLog 访问日志
大体上,Apache的配置文件就以上这么多啦,当然还有一些没有介绍,相比而言写出来的重要些而已。
基于端口号的虚拟主机
首先,要先把默认的服务器的DocumentRoot注释掉,且要多指定一个端口例如:8080端口
然后就可以编辑虚拟主机的内容啦:(内容有点简单,日志文件没写而已)
然后测试文件语法 httpd -t 或者 service httpd configtest
然后service httpd restart (修改端口号要重启服务的)
测试如下:
再来看看基于IP的虚拟主机的实现:配置文件如下:
我们只需把端口都改为80端口,而IP地址则不能一样
最后我们常用的是基于主机名称的实现,要想基于主机名,首先我们要能解析出主机的IP地址,要能解析主机名的IP地址,就需要DNS服务,所以配置好DNS服务器是前提,在这里,我们只需在已经配置好的DNS服务器的解析库文件中,/etc/hosts 文件中添加也行,
配置文件:
测试语法
重启服务
以上3种虚拟主机的建立就这样啦,这里顺便说下,我用的虚拟机,做基于主机名称虚拟主机的时候,我改的不是虚拟机的/etc/hosts,我改的是我的window本机的C盘/windows/system32/drivers/etc/hosts文件,在这个文件内添加如下内容即可:
192.168.0.102 www1.stu14.com
192.168.0.102 www2,stu14.com
以上就是HTTP服务的配置文件的详解以及如何去创建虚拟主机。