一、Web服务概述

1、什么是WEB服务

Web服务是Internet中最为重要的应用

Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。

根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口API)所组成的,它们透过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。

2、Web服务采用客户端/服务器模型

客户端为浏览器,它提供了良好、统一的用户界面。浏览器的作用为解释和显示Web页面,响应用户的输入请求,并通过HTTP协议将用户请求传递给Web服务器

渲染引擎是浏览器重要的组成部分。

3、Web服务器运行服务器程序,最基本的功能是侦听和响应客户端的HTTP请求,向客户端发出请求处理结果信息

4、HTTP协议的默认端口为80


二、HTTP协议操作过程

clip_p_w_picpath002

如果在请求中没有明确的说明请求的文件,默认请求的是/index.html文件。默认应答的页面即请求根目录的index.html文件。

如 http://www.e-bai.com/index.html

用户的请求包括domain(域)和path(路径)两部分:

www.e-bai.com表示domain部分;

/index.html称为path部分,根目录下的html文件。

三、Apache服务器

1、Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将PerlPython解释器编译到服务器中。

Apache服务器支持相应的模块化功能

兼容性强,支持多种平台

2、Apache项目有Apache软件基金会(ASF)负责管理和开发

3、安装apache

生产中较少使用源代码安装软件,一般采用rpm包管理器安装

yum install httpd

进入RHEL安装光盘安装

rpm -ivh http-xxx.rpm

httpd-2.2.3-43.el5.i386.rpm apache主程序包

httpd-manual-2.2.3-43.el5.i386.rpm httpd手册

httpd-devel-2.2.3-43.el5.i386.rpm 相应的apach库文件


4、主要组成部分

rpm -ql httpd查看httpd包安装的文件

(1)相应配置文件目录/etc/httpd/,

clip_p_w_picpath004

主配置文件:/etc/httpd/conf/httpd.conf

clip_p_w_picpath006

分三个组成部分:

Section 1: Global Environment 全局配置

ServerRoot "/etc/httpd" 指定当前apache服务器运

行之后的chroot目录是

/etc/httpd目录;

PidFile run/httpd.pid 指定apche的进程编号保

存位置。

该位置表示的是相对路径,

绝对路径为/etc/httpd/run/httpd.pid

Timeout 120 超时时间,如果用户连接120秒后仍然

连接不上,就直接回复连接超时了

KeepAlive Off 和TCP/IP协议中关于TCP协议的

keepalive不同;

保活连接Apche自身的实现。

默认off关闭。

如果改成on之后,下面的配置将生效

建议设置为on,同时根据网站情况合

理分配下面两个参数的数值。

MaxKeepAliveRequests 100 最大的保活连接尝试次

数。100次之后确认对方

已挂掉

KeepAliveTimeout 15 用户如果15秒之内没有发送任

何相应的数据包,服务器将发送

一次保活连接测试。

Server-Pool Size Regulation (MPM specific)

MPM配置。

当前Apache有两种运行的模式:

进程(prefork)和线程(worker)模式。

运行于进程模式的Apache服务器,处理请求速

度更快;但是开启的进程数受到一定限制;处

理大并发量进程的请求时不如线程模式;

进程模式性能好,但承载量少

线程模式由于共享进程内存,所以可以开启非

常多的线程。大大超过进程的数量,处理大并

发量的进程访问时性能比进程模式好;但是由

于线程模式是竞争进程内存的,所以效率没有

进程模式高。

线程模式性能稍差,承载量多

clip_p_w_picpath008

如果Apache服务运行于(prefork)进程模式,则

该段配置生效.当前apache服务器默认运行在

prefork模式。

StartServers 8 默认启动多少个进程来为用户提供服务。

默认为8

MinSpareServers 5 最小的空闲进程数量

MaxSpareServers 20 最大的空闲进程数量

ServerLimit 256 当前进程开启的最大数量,如果需要超过

256,需要改写源代码或者使用MAxClients

参数

MaxClients 256

MaxRequestsPerChild 4000 每个子进程可以处理4000个请求

clip_p_w_picpath010

线程模式

StartServers 2 启动2个进程

MaxClients 150 最多开启150个线程

MinSpareThreads 25 最小进程闲置数量

MaxSpareThreads 75 最大线程闲置数量

ThreadsPerChild 25 每个进程开启25个线程

MaxRequestsPerChild 0 每个子进程处理相应请求的数量。默认0

不做限制

clip_p_w_picpath012 如果有多个IP地址,指向指定某一个IP地址

的端口;

如果指定所有网卡的端口都监听,直接写Listen 80就可以了。

也可以重新设置Apache的默认端口。

Dynamic Shared Object 动态加载增加或缩减功能

语法格式:

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule 模块名称/模块位置(路径以相对路径书写)

实际路径为/etc/httpd/module下的相应的.so文件

clip_p_w_picpath014

Include conf.d/*.conf 包含 conf.d/目录下所有的.conf结尾的

文件

clip_p_w_picpath016

包含各种子配置文件

clip_p_w_picpath018

分别设置以哪个用户、哪个组的身份运行Apache服务器

clip_p_w_picpath020

注意:由于监听的是80端口属于知名端口(小于1024),知名端口必须有root用户来绑定。所以首先使用root身份运行Apache服务,;然后在进程中fork出其他子进程,fork出的子进程用Apache身份来运行。root运行的进程只监听端口,将接收到请求转交给其他子进程。

Section 2: 'Main' server configuration

主服务的配置文件即默认的主网站的各项参数配置

ServerAdmin root@localhost 该网站的管理员的email地址

ServerName www.example.com:80 当前服务器主机的域名。

不是本机的DNS主机名

DocumentRoot "/var/www/html" 网站的主目录位置

clip_p_w_picpath022设置目录的属性

clip_p_w_picpath024

Options 后跟的内容包括Indexes(单独设定目录的默认主页文件的名称,一般是idexes/html文件)、Includes(包含其他目录属性)、 FollowSymLinks(创建软链接)、 SymLinksifOwnerMatch、ExecCGI、 MultiViews(支持多类型的页面)

ALL除了Multiviews之外的其他所有功能

默认是clip_p_w_picpath026

自定义首页文件和创建软链接

AllowOverride None 允许覆盖。控制.htaccess功能的开关以及

开启什么功能。

none表示关闭该功能。

.htaccess文件可以写入的配置

Options(属性配置信息)、 FileInfo(文件细节控制)、

AuthConfig(认证配置)、Limit(使用量的配置)

all表示以上全部功能

.htaccess文件不需要重启服务器立即生效。但会增加服务器

的负担。一般在多用户所使用服务器的时候开启。

clip_p_w_picpath028

控制当前目录的访问。

clip_p_w_picpath030

usr dir 模块开启后,当前的服务器每一个普通用户都

可以在家目录中创建一个public_html 的目录。该目

录下可以放置一些页面文件。

用户通过访问服务器的域名地址/~user,就可以访问到

该目录的网页。

默认关闭

DirectoryIndex index.html index.html.var

这项功能必须是在clip_p_w_picpath026[1]

配置后才能使用

clip_p_w_picpath032 .htaccess文件的设置

~代表是后面的名称是用正则表达式书写的

^表示以什么为开头;\转译符;

表示.ht为开头的文件任何人不能访问。只能被服务器

读取,不会被普通用户读取到。增强安全性。

clip_p_w_picpath034

类型配置。

mime:多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。这个标准被定义在RFC 2045RFC 2046RFC 2047RFC 2048RFC 2049RFC中。 由RFC 822转变而来的RFC 2822,规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息都不能在电子邮件中传输。MIME规定了用于表示各种各样的数据类型的符号化方法。 此外,在万维网中使用的HTTP协议中也使用了MIME的框架。

/etc/httpd/conf/magic文件是mime文件的补充。

DefaultType text/plain或application/octet-stream

访问的文件服务器无法识别的时候,

默认text/plain是以文本格式显示在页面中;

clip_p_w_picpath036

clip_p_w_picpath038

service httpd restart重启服务

clip_p_w_picpath040

application/octet-stream 下载到本机;推荐使用

clip_p_w_picpath042

service httpd restart重启服务

首先浏览器的缓存,再次访问

clip_p_w_picpath044

clip_p_w_picpath046

hostnamelookups Apache服务器是否打开DNS查询的功能。

默认是off。如果打开,每个访问网站的用,apache都会执行一次反向解析得知来源IP地址的想ing域名并且保存到日志。

消耗服务器的性能。

ErrorLog logs/error_log 指定当前网站的错误日志目录。

实际路径是

/var/log/httpd/error_log

LogLevel warn 记录什么级别的日志。表示记录warn以上级别的日

志。

clip_p_w_picpath048

LogFormat 日志格式。表示的是用户访问的日志格式。

clip_p_w_picpath050

Alias /var/www/icons/ alias别名。用户在url下访问/icons/

表示访问的实际路径是

/var/www/icons/。

clip_p_w_picpath052

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" scriptAlias别名。

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml 如果mime中没有的格式可以在

此添加

ErrorDocument语句 用来指定报错页面内容

clip_p_w_picpath054

设置进程模式或者线程模式启动使用/etc/sysconfig/httpd文件

clip_p_w_picpath056

HTTPD=/usr/sbin/httpd.worker 如果去掉注释,apache服务重启

后会使用线程模式;但是线程模式

会与某些模块发生不兼容,例如

PHP。

服务器的根目录(ServerRoot):/etc/httpd

根文档目录(DocumentRoot):/var/www/html

访问日志文件:/etc/httpd/logs/access_log

错误日志文件:/etc/httpd/logs/error_log

模块存放路径:/etc/httpd/modules

实验

一、配置基于IP的虚拟主机

1、添加一个IP地址

ifconfig eth0:0 192.168.1.200 netmask 255.255.255.0

clip_p_w_picpath058

2、编辑配置文件

vi /etc/http/conf/http.conf

复制该段

clip_p_w_picpath060

编辑如下

<VirtualHost 192.168.1.150>

指定192.168.1.150监听,由于当前默认监听的

是80端口,所以这里我们可以省略。

ServerAdmin 网站的管理员

DocumentRoot 当前网站的主目录

ServerName 网站的名称

ErrorLog 错误日志文件;

CustomLog 用户访问日志

最终配置如图:

clip_p_w_picpath062

3、创建配置文件目录

clip_p_w_picpath064

4、重启服务

clip_p_w_picpath066

5、chkconfig httpd on设置开机启动

clip_p_w_picpath068

6、测试

访问192.168.1.150,回复如下:

clip_p_w_picpath070

访问1,92.168.1.200,回复是:

clip_p_w_picpath072

由于IP地址越来越稀缺,所以这种方式已经较少适用。

二、配置基于端口的虚拟主机

1、

编辑配置文件.访问80端口回复a.com;80:80端口回复b.com。

vim /etc/httpd/conf/httpd.conf

添加监听端口8080

clip_p_w_picpath074

虚拟主机的配置为

clip_p_w_picpath076

2、重启服务

clip_p_w_picpath078

3、测试

80端口是默认访问的,直接访问结果不变

clip_p_w_picpath080

访问192.168.1.150:8080端口,得到的结果是

this is b.com

clip_p_w_picpath082

三、配置基于名称的虚拟主机

1、编辑配置文件

vim /etc/httpd/conf/httpd.conf

1)首先打开clip_p_w_picpath084,表示打开哪一个IP地址的

哪个端口的基于名称的虚拟主机的功能。

默认是*:80,表示服务器所有IP地址的80端口都打开此

功能。

注意:一定要先打开,只有打开后Apache服务器才会支持

分辨用户请求的主机头的部分的内容。

2)配置如图

clip_p_w_picpath086

2、为了让当前访问不再输入IP地址,而是直接输入主机名。我们修

改一下/etc/hosts文件

vi /etc/hosts

clip_p_w_picpath088

3、重启服务

clip_p_w_picpath090

4、测试

输入www.a.com

clip_p_w_picpath092

输入www.b.com

clip_p_w_picpath094