第(一)篇主要是介绍了http.conf配置文件的基本配置,后续的(二)将会是主要操作部分。。。。。
一、实现环境
 1.本操作基于linux redhat5.8系统
 2.httpd安装版本2.2.3
 3.web服务器选用常用的Apache
二、目的
 1.通过在本地实现web的简单配置进而更清晰的了解web服务器的主配置文件格式
 2.熟悉httpd的服务器配置
 3.基于ssl协议的web服务证书认证
 3.实现web服务器的一些功能,eg:用户认证等
三、准备工作
 1.确保/etc/sysconfig/selinux的配置文件中SELINUX=permissive状态
 2.下载httpd的rpm包,mod_ssl模块,
 3.首先配置好DNS服务器,为网卡配置多个ip,这里配置三个即可:
  172.16.12.1:www.magedu.com
  172.16.12.2: www.test.net
  172.16.12.3: www.example.org
  (配置DNS服务器所用)
四、web服务器的简介
 (1)Web服务器也称为www服务器,主要是提供网上信息浏览服务。www是internet的多媒体信息查询工具,是Ineternet上发展出来的服务。
  WWW(world wide web)也称为web,全球信息网,中文名字万维网。它起源于1989年3月,由欧洲量子物理实验室开发出来的主从结构分布式超媒体系统。WWW 可以结合文字、图形、影像以及声音等多媒体,并透过可以让鼠标点击的超链接 (Hyperlink) 的方式将信息以 Internet 传递到世界各处去。
  web是依据http协议而运行的,http(HyperText Transfer Protocol,超文本传输协议)是internet上应用最广泛的一种网络协议,所有的web文件都必须遵循这个标准。根据http协议web分为客户端和服务器端,为其制定了请求和应答标准。
 (2)HTTP的两种报文:请求报文,响应报文
  请求报文语法;
  <method><request-URL><version>
  <headers>首部
 
  <entity-body>报文主体
  响应报文语法:
  <version><status><reason-phrase>
  <headers>

  <entity-body>报文主体

  响应报文的<status>状态代码表示意义:
  1xx:纯信息
  2xx:“成功”类的信息(200正常响应)
  3xx:重定向类的信息(301永久重定向,302临时重定向,304没发生改变)
  4xx:客户端错误类的信息(404)
  5xx:服务器端错误类的信息
  
  HTTP协议定义了八种动作方法,来表明request-uri指定的资源的不同操作方式。如下所示:
  1.Options :返回服务器针对特定资源所支持的http请求方法,也可以利用向web服务器发送*的请求来测试服务器的功能性
  2.Head:向服务器索要与get请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息中的源信息。
  3.Get:向特定的资源发送请求
  4.Post:向指定资源提交数据进行处理请求。数据包含在请求体中。Post可能会导致新的资源的简历或已有资源的修改。
  5.Put:向指定资源位置上上传其最新的内容
  6.Delete:删除指定的资源
  7.Trace:回显服务器受到的请求
  8.Connect :http协议中预留给能够将连接改为管道方式的代理服务器

 (3)我们常见的web服务器软件有:Apache http server; IIS; Ngix等,这里使用Apache服务器软件。
  Apache是一个服务器端的软件,为开源软件,主要依据NCSA的httpd发展而来,其他的就不在介绍了。
五、下面开始工作;
(1)Apache的主要结构:
  后台进程httpd
  脚本文件:/etc/rc.d/init.d/httpd
  监听端口:80/tcp(基于ssl的还会有443端口,后面会介绍)
  默认配置文件路径:/etc/httpd/*
  默认网站文件存储路径:/var/www/*
(2)安装httpd的rpm包:
  yum -y install httpd 通过yum源下载安装。
  (也可根据需求编译安装,这里不做详解。)

web服务器之配置(一)_web


  安装过后就可查看其配置文件了,下面是安装httpd生成的主要文件:
(3)

web服务器之配置(一)_http_02


  /etc/httpd:这是appche的主要安装目录,即所有配置文件存放的目录。
  /etc/httpd/conf/httpd.conf:全局配置文件
  /etc/lib/httpd/modules:apache的模块安装目录
  /usr/sbin/httpd,/usr/sbin/httpd.event,/usr/sbin/httpd.worker:apache提供的常用三个指令,httpd默认工作模式为prefork模式
  /car/www/*:apache网页文件的存放目录
   
(4)下面来介绍apache主配置文件/etc/httpd/conf/httpd.conf的基本配置:
 

web服务器之配置(一)_http_03


  Apache的httpd.conf配置文件主要是由全局环境,主服务器配置和虚拟主机三部分组成。每个部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称   参数值”
  http.conf 的语句中,以#号代表注释,大多数参数有多个值组成,使用空白分隔符隔开。
  
  1、先来查看全局环境中我们常用的需求配置,该部分的参数主要对apache运行时的环境及状态进行设置
 

web服务器之配置(一)_web_04


  ServerRoot "/etc/httpd":apahe安装的绝对路径
 

web服务器之配置(一)_http_05


  Timeout 120:设定超时时间,即最长等待时间,以秒为单位
 

web服务器之配置(一)_http_06


  KeepAlive Off:设定是否开启连续求情功能,这里是虚拟机上的配置,真正的服务器一般都是开启的
 

web服务器之配置(一)_web_07


  MaxKeepAliveRequests 100:该服务器所能接受的最大连续请求数
 

web服务器之配置(一)_web_08


  KeepAliveTimeout 15:同一个客户端等待下次同一个连接的超时时间

web服务器之配置(一)_http_09


  prefork模块的参数:
   StartServers       8:设定激活时所需要建立的子进程数
   MinSpareServers    5:设置最小的闲置子进程数
   MaxSpareServers   20:设置最大的闲置子进程数
   ServerLimit      256:客户端访问的最大生命周期
   MaxClients       256:服务器允许启用的最大客户端进程数 
   MaxRequestsPerChild  4000:每个服务器进程最大请求的线程的数量
 

web服务器之配置(一)_web_10


  Listen 80:设定httpd进程的监听端口
  2.'Main' server configuration:这个是网站运行参数的设定,如果使用了虚拟主机,也会成为虚拟主机中未定义参数的默认值。
 

web服务器之配置(一)_http_11


  
 

web服务器之配置(一)_web_12

  ServerAdmin root@localhost:你的邮件地址,当发生错误时,apache将向你发出邮件
 

web服务器之配置(一)_web_13


  UseCanonicalName Off:决定如何构造URLS和SERVER_NAME和SERVER_PORT的指令,设置为Off时,Apache会使用客户端提供的主机名和端口号,设置为On时,Apache会使用ServerName指令的值。

web服务器之配置(一)_web_14


  DocumentRoot "/var/www/html":网页文档的存放目录,所有的请求从这个目录中进行应答。
 
 

web服务器之配置(一)_web_15


  Options Indexes FollowSymLinks:设定哪些文件类型被显示
 

web服务器之配置(一)_web_16


  Order allow,deny
  Allow from all    :控制谁可以获得服务
 

web服务器之配置(一)_web_17


  DirectoryIndex :定义请求是一个目录时向用户提供服务的文件名
 

web服务器之配置(一)_http_18


  防止以.ht开头的文件被用户查看
 

web服务器之配置(一)_web_19


  DefaultType text/plain:定义默认的MIME类型

web服务器之配置(一)_http_20


  HostnameLookups Off:设定是否记录客户端
 

web服务器之配置(一)_http_21


  ErrorLog logs/errot_log:设定错误日志路径
  LogLevel warn:日志级别
  下边的四行LogFormat为日志的显示格式
 

web服务器之配置(一)_web_22


  CustomLog logs/access_log combined:客户访问日志路径及显示格式,combined
 

web服务器之配置(一)_http_23


  Alias /icons/ "/var/www/icons/":可以指定别名,即自己指定网页文件目录
  Directory容器中则为设定权限
  其它的一般不需要改动
  3.虚拟主机配置文件
  定义虚拟主机:
  要注意的是:要使用虚拟主机,先取消中心主机,只需要注释掉中心主机的DocumentRoot即可。
  物理服务器只能运行一个站点,但虚拟主机指的是一个物理主机可运行多个站点。
  可以定义一下几种:
  基于IP的虚拟主机:使用不同的IP 提供不同的站点
  基于PORT的虚拟主机:使用不同port提供不同的站点、
  基于主机头(域名)的虚拟主机:使用不同的主机提供不同的站点。
  下面是虚拟主机文件的基本格式:
  定义虚拟主机:基于IP
<VirtualHost IP:PORT>
 DocumentRoot "/path/to/somewhere" (实验执行添加前两项即可)
 ServerName  IP
 ServerAlias
 <Directory "/path/to/somewhere">
 
 </Directory>
 ErrorLog logs/site1.err_log
 CustomLog logs/site1.access_log combined
</VirthualHost>

基于主机名的虚拟主机在httpd2.2 必须打开NameVirtualHost *:80这个指令
<VirtualHost IP:PORT>
 DocumentRoot "/path/to/somewhere"
 ServerName  主机头(域名)
 ServerAlias
 <Directory "/path/to/somewhere">
 
 </Directory>
 ErrorLog logs/site1.err_log
 CustomLog logs/site1.access_log combined
</VirthualHost>