Apache简介:html
Apache是一款著名的web服务器的软件。它是实现HTTP协议 的一个工具,而httpd则是Apache超文本传输协议服务器的主程序。web
下面我来讲说Apache的配置文件(很是重要)windows
1, 配置文件整体分为3个部分:服务器
Section1: Global Environment
ide
功能: 控制Apache服务器进程的全局操做的
工具
Section2: 'Main' server configuration
测试
功能: 提供主服务器(默认为主服务器)的配置
网站
Section3: Virtual Hosts
spa
功能: 提供虚拟服务器配置的
操作系统
注意:默认状态下,主服务器启用,主服务器和虚拟服务器不能同时启用,须要启用虚拟服务器则先关闭主服务器。
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
<IfModule prefork.c>(服务器池)
<IfModule prefork.c>
StartServers 8 //服务器开启时,启动的服务器子进程为8个
MinSpareServers 5 //最小空闲服务器子进程为5个
MaxSpareServers 20 //最大空闲服务器子进程为20个
ServerLimit 256 //容许服务器进程数最多为256个
MaxClients 256 //容许同时相应的客户端数为256个
MaxRequestsPerChild 4000 //容许一个服务器子进程最多相应的服务请求数为4000个
</IfModule>
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站点的文档根目录,网站上的页面文件都是存放在此根目录下的
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
功能: 根目录的访问控制,<Directory />表示要对文件系统的目录进行限制
<Directory "/var/www/html">
Options Indexes FollowSymLinks //容许跟随符号链接,其中Indexes的含义是,若是要访问的页面文档不存在,则显示文档根目录下的文件目录清单
AllowOverride None //不容许覆盖当前配置,也就是不处理.htaccess文件
Order allow,deny //访问控制的顺序,先allow后deny
Allow from all // 容许全部主机访问
</Directory>
功能:对文档根目录的访问控制
<IfModule mod_userdir.c>
UserDir disabled
</IfModule>
功能:默认禁用我的主页,而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
<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
功能: 设置Apache能够报告详细的服务器状态信息。
Section3:主要说虚拟机主机的配置:
主要有3种,基于IP的虚拟主机,基于端口的虚拟主机,基于名字的虚拟主机。
虚拟主机不能和主服务器同时开启,全部要注释掉虚拟主机
注释主服务器的站点根路径指定:DocumentRoot
定义虚拟主机
NameVirtualHost IP:PORT
<VirtualHost IP:PORT>
ServerName 服务名称
DocumentRoot 根目录
ServerAlias 服务别名
ErrorLog 错误日志
CustomLog 访问日志
</VirtualHost>
大致上,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服务的配置文件的详解以及如何去建立虚拟主机。