网络操作系统(Linux)3.8 配置WEB服务器.ppt
,学习任务三 操作系统的网络服务,学习子任务3.8 配置WEB服务器,目录,3.8.1: WEB服务简介,1,3.8.2: Apache服务器的简介,2,3.8.3 : Apache服务器的常规操作,3,3.8.4 : Apache服务器的主配置文件,4,CONTENTS,项目3.8 DNS服务配置常见故障分析,5,WEB服务简介,3.8.1,Web服务器又称WWW(World Wide Web)服务器,人们平时上网浏览的网页就是架构在这种服务器上。通过Web服务器提供的Web发布服务,用户可以阅读新闻、查询资料,乃至和远方的用户实现声音和图像的交互。,一. WWW的起源,WWW是一种建立在Internet上的全球性的、交互的、动态的、跨平台的、分布式的图形信息系统。WWW遵循HTTP协议,默认的TCP/IP端口是80。T. Nelson于1965年提出“超文本”(Hypertext)概念,于1967年开始名为Xanadu的分布式计划。后来,欧洲粒子福利实验室(CERN)的Tim Berners-Lee在Nelson的影响下,提出了一个计划,目的是使科学家们很容易查阅同行的文章,进一步演化成使科学家能在服务器上创建文档。该项目经历了2个月,于1990年12月完成了命令行方式的浏览器和NeXTStep浏览器,可以浏览超文本文件和CERN的Usenet。两年后,WWW在CERN内部得到了广泛的使用。至1993年1月,全球共有30台Web服务器。同年,伊利诺斯大学Urbana-Champaign分校的美国国家超级计算应用中心(NCSA)发行了一个新的浏览器软件,进而催生了浏览器软件Netscape和Internet Explorer。从此,WWW初具规模。现在,WWW的应用已经超出原来的设想,成为Internet上最受欢迎的服务。WWW极大地推动了Internet的普及。,二. WWW的特点,WWW常常被媒体描述成Internet,许多人也把WWW当做Internet。实际上,WWW和E-mail、FTP等Internet服务一样,只是Internet的一个部分。由于WWW最容易使用、最直观、内容丰富等原因,成为最受大家欢迎的服务。 WWW具有以下特点:1、图形化。WWW提供了将图形、音频、视频等信息集合于一体的特性。易于导航。由于Web是基于超文本(Hypertext)建立的,可以从一个链接跳到另一个链接,从而能在各网页及各站点之间进行浏览。2、平台无关性。无论用户应用Windows平台、UNIX平台、类UNIX平台、Machintosh平台、OS/2平台或其他平台,只要安装了Internet浏览器,都可以通过Internet访问WWW。3、动态性。各Web站点的所有者经常对站点上的信息进行更新,以尽量保证信息的时间性。因此,Web站点上的信息是动态的、经常更新的。 l分布式。WWW站点可以把大量的图形、音频和视频放在不同的站点上,只要在网页上指明这个站点的超文本,即可使物理上不处于一个站点的信息在逻辑上一体化。4、交互性。Web是基于超文本的,用户可以自主决定其浏览顺序。另外,用户可以通过表单的形式填写信息,然后向服务器提交,服务器根据用户请求返回相应的信息,使用户获得动态信息。,三. WWW的结构,WWW基于Browser/Server结构。用户使用一种称为Web浏览器的客户机程序,通过HTTP协议与进行Web发布的计算机(Web服务器)通信。用户用URL请求文档,Web服务器响应该请求,如果指定的文件存在并符合权限设置,则将指定的文档返回给用户。Web浏览器(Web Browser)是一个使计算机与Web服务器通信并显示服务器上存储信息的程序。一般,Web站点是一个具体的Web服务器或服务器的一部分,按照一定的组织或主题保存的Web页的集合。Web服务器还需要提供与客户端进行交互的机制,以满足网上购物、文章查询、实时聊天等服务的需求。Web服务器常用CGI、ASP、ASP.NET、PHP、JSP等编程语言作为交互的手段。,Apache服务器的简介,3.8.2,Apache是世界排名第一的Web服务器。根据Netcraft(www.netsraft.co.uk)的调查,世界上百分之五十以上的Web服务器在使用Apache。1995年4月, 最早的Apache(0.6.2版)由Apache Group公布发行。Apache Group 是一个完全通过Internet进行运作的非盈利机构, 由它决定Apache Web服务器标准发行版中应该包含哪些内容。 准许任何人修改隐错,提供新的特征,将它移植到新的平台,以及其它的工作。当新的代码被提交给Apache Group时, 该团体审核其具体内容并进行测试,如果认为满意,该代码被集成到Apache的主要发行版中。 Apache 的特性: ●几乎可以运行在所有的计算机平台上。 ●支持最新的HTTP/1.1协议。 ●简单而且强有力的基于文件的配置(HTTPD.CONF)。 ●支持通用网关接口(CGI)。 ●支持虚拟主机。 ●支持HTTP认证。 ●集成PERL。 ●集成的代理服务器。 ●可以通过WEB浏览器监视服务器的状态, 可以自定义日志。 ●支持服务器端包含命令(SSI)。 ●支持安全SOCKET层(SSL)。 ●具有用户会话过程的跟踪能力。 ●支持FASTCGI。 ●支持JAVA SERVLETS。 Red hat Linux自带的Apache版本是2.0.40,该版本比1.3版本增加了很多新的特性。,Apache服务器的常规操作,3.8.3,一. Apache服务器的安装,一般情况下,Apache随Linux系统一起安装。安装时,选择Web Server组件,即可在系统中安装Apache。用户的工作主要是配置Apache。 1、检查系统中是否已安装apache在Red hat Linux下,以下命令可以检查系统中是否存在Apache及其版本: [root@localhost ~]# rpm -qa |grep httpd 如果存在Apache,返回类似下面的信息: httpd-2.2.3-6.el5 system-config-httpd-1.3.3.1-1.el5 httpd-manual-2.2.3-6.el5 2、安装Apache服务方法一:RPM安装。将Red Hat Enterprise Linux 5第二张安装盘放入光驱,加载光驱后,在光盘的Server目录下找到HTTP服务的RPM安装包文件httpd-2.2.3-6.el5.i386.rpm、httpd-manual-2.2.3-6.el5.i386.rpm、system-config-httpd-1.3.3.1-1.el5.noarch.rpm,然后用以下命令安装HTTP服务:,[root@localhost Server]# rpm -ivh httpd-2.2.3-6.el5.i386.rpm [root@ localhost Server]# rpm -ivh httpd-manual-2.2.3-6.el5.i386.rpm [root@ localhost Server]# rpm -ivh system-config-httpd-1.3.3.1-1.el5.noarch.rpm方法二:源码包安装 (1)安装前的准备 下载 Apache 2.0(可从官方网站下载)。假设使用 Apache 2.0.15,用以下命令解压缩: [root@localhost ~]# tar -xvzf httpd-2*.tar.gzApache 2.0用autoconf和libtool决定要编译的部件,一般下载后的tarball文件已包含用于配置的configure脚本,如果想自己生成,可以用命令./buildconf 重新建立。configure 脚本有很多的选项,以下命令可以查看详细的列表: [root@localhost ~]# ./configure –help 以下是几个主要的选项: ①-prefix:指定 Apache 安装的目标目录。 ②-with-maintainer-mode:以完全的纠错方式编译。 ③-with-mpm:指定多处理模块 ④-enable-module:指定哪些模块可以编译进Apache,可以是模块列表,也可以是关键字most。可以把一个模块列表中的所有模块都编译进去。 ⑤-enable-mods-shared:指定哪些模块应该被编译为共享模块。,多处理模块(MPM)能对任意站点的 Apache 2.0进行调整。一个网站或操作系统的配置在另一台机器或操作系统可能会有炯然不同的结果,为解决这个问题,系统管理员可以指定 Apache 服务器的运行方式。例如,在 Unix上有三种标准的MPM: ●Prefork:与Apache 1.3同样的模块,父进程派生一些子进程处理请求,每个子进程有一个线程,同一时间只能处理一个请求,当服务器忙时,则派生新的子进程。 ●Threaded:与Prefork相同,但每个子进程拥有静态数目的线程,具体的数目在 httpd.conf 中指定。 ●Perchild:父进程创建指定数目的子进程,每个子进程带有最小数目的线程,当服务器忙时,进程创建更多的线程来处理请求。(2)安装apache 一旦configure 完成,即可进行安装。命令如下: [root@localhost ~]# make install如果在configure中没有指定prefix参数,Apache默认的安装目录是 /usr/local/apache。 如果以root 用户安装Apache,直接在浏览器上输入:http://localhost,即可看到一个Apache 的测试页面。如果不是以root用户安装Apache,Apache 的默认端口为 8080,因此,浏览地址应该为:http://localhost:8080/。,二. Apache服务器的操作,1、启动Apache服务器,命令如下: [root@localhost ~]# /etc/init.d/httpd start 或[root@localhost ~]# service httpd start 2、停止Apache服务器,命令如下: [root@localhost ~]# /etc/init.d/httpd stop或[root@localhost ~]# service httpd stop3、重新启动Apache服务器,命令如下: [root@localhost ~]# /etc/init.d/httpd restart 或 [root@localhost ~]# service httpd restart 4、查看Apache服务是否已启动:可以使用netstat命令查看http默认端口80是否起来了,命令如下: netstat –an|grep 53,Apache服务器的主配置文件,3.8.4,Red Hat Linux系统中,Apache的配置文件放在/etc/httpd/conf/目录下。如果自行编译安装的Apache,视编译时指定的目录路径而定,默认是/usr/local/apache/conf。 在conf子目录下有四个文件(实际上从2.0开始就只有两个文件):httpd.conf、srm.conf、access.conf、magic。注意:www-howto文档说第四个文件是mime.types,但实际安装时在conf子目录下是magic文件。httpd.conf是Apache的主设置文件。httpd程序启动时,先读取httpd.conf。srm.conf是数据配置文件,主要设置WWW Server读取文件的目录、目录索引时的画面、CGI执行时的目录等。access.conf负责基本的读取文件控制,限制目录能执行的功能以及访问目录的权限设置。事实上,现代版本的Apache为避免管理和维护混乱,已经改为将所有Apache的相关配置命令放在httpd.conf文件中,不再使用srm.conf和access.conf文件。虽然这两个文件仍然存在,但文件中没有任何配置命令,形同虚设。,httpd.conf文件分为以下3部分: ●Global Environment ● Main server configuration ●Virtual Hosts由于httpd.conf文件很长,这里只做一些相对实用简单的配置介绍。 以下是httpd.conf中的几条指令(“//”后加入了注释说明): User apache //一般情况下,以nobody用户和nobody组运行web服务器。 Group apache //服务器发出的所有的进程都是以root用户身份运行,存在安全风险。 ServerAdmin root@localhost //指定服务器管理员的E-mail地址。服务器自动将错误报告到该地址。 ServerRoot /etc/httpd //服务器的根目录,一般情况下,所有配置文件在该目录下。 Timeout 300 //接收和发送前超时秒数。 KeepAlive On //是否允许稳固的连接(每个连接有多个请求),设为“Off“则停用。 Listen 80 //监听本机80端口。 Listen 12.34.56.78:80 //只监听指定的IP地址的80端口。,LoadModule php5_module modules/libphp5.so //动态共享支持,这是加载PHP5的一种方法。 ServerAdmin you@example.com //发生问题时Apache将向此地址发出邮件。 ServerName www.domain.com:80 //没有域名就填主机IP或者填localhost。 erverName new.host.name:80 //web客户搜索的主机名称。 KeepAliveTimeout 15 //规定连续请求之间等待15秒,若超过,则重新建立一条新的TCP连接。 MaxKeepAliveRequests 100 //永久连接的HTTP请求数。 MaxClients 150 //同一时间连接到服务器上的客户机总数。 ErrorLog logs/error_log //指定错误日志文件的名称和路径。 PidFile run/httpd.pid //存放httpd进程号,以方便停止服务器。 Timeout 300 //设置请求超时时间,若网速较慢,应增大设置值。 DocumentRoot /var/www/html //用来存放网页文件。//此处要设置为与DocumentRoot一样的目录。 DirectoryIndex index.php index.html //定义请求是一个目录时,Apache向用户提供服务的文件名。,LoadModule php5_module modules/libphp5.so //动态共享支持,这是加载PHP5的一种方法。 ServerAdmin you@example.com //发生问题时Apache将向此地址发出邮件。 ServerName www.domain.com:80 //没有域名就填主机IP或者填localhost。 erverName new.host.name:80 //web客户搜索的主机名称。 KeepAliveTimeout 15 //规定连续请求之间等待15秒,若超过,则重新建立一条新的TCP连接。 MaxKeepAliveRequests 100 //永久连接的HTTP请求数。 MaxClients 150 //同一时间连接到服务器上的客户机总数。 ErrorLog logs/error_log //指定错误日志文件的名称和路径。 PidFile run/httpd.pid //存放httpd进程号,以方便停止服务器。 Timeout 300 //设置请求超时时间,若网速较慢,应增大设置值。 DocumentRoot /var/www/html //用来存放网页文件。//此处要设置为与DocumentRoot一样的目录。,DirectoryIndex index.php index.html //定义请求是一个目录时,Apache向用户提供服务的文件名。 LogLevel warn //控制记录在错误日志文件中的日志信息数量;值包括:debug,info,notice,warn,error,crit,alert,emerg。 AllowOverride None //设置是否启用身份认证,一般位于中,当需要为某个目录设置身份认证时需将none改为AuthConfig或ALL。 Order allow,deny //设置IP访问控制顺序,上例为先允许后拒绝,默认没有允许的全部拒绝。 Order deny,allow //设置IP访问控制顺序,上例为先拒绝后允许,默认没有拒绝的全部允许。 Allow from all //允许哪些IP地址或网段,all表示所有,Allow from 172.16.100.0/24表示172.16.100.0这个网段,Allow from 172.1.1.1表示允许某个IP地址访问。 Deny from all //拒绝哪些IP地址或网段,与Allow from all相似。,Apache配置项目,项目3.8,实例1:个人网页的认证登录,1. 需求: (1)创建一个具有个人主页的HTTP网络服务 (2)实现该目录匿名访问 (3)个人网页实现用户身份认证登录 2. 系统及软件环境 (1)操作系统:Red Hat AS 5.0 (2)本机服务IP地址:10.1.6.250/24 (3)服务器软件包: httpd-2.2.3-6.el5 system-config-httpd-1.3.3.1-1.el5 httpd-manual-2.2.3-6.el5 3. 实验配置文件及命令 (1)/etc/httpd/conf/httpd.conf (2)/etc/httpd/authpwd,实例2、虚拟目录配置,1. 需求: (1)Apache服务的符号链接和别名 (2)实现基于ip地址的虚拟目录 (3)基于域名的虚拟目录 2. 系统及软件环境 (1)操作系统:Red Hat AS 5.0 (2)本机服务IP地址:10.1.6.250/24 (3)服务器软件包: httpd-2.2.3-6.el5 system-config-httpd-1.3.3.1-1.el5 httpd-manual-2.2.3-6.el5 3. 实验配置文件及命令 /etc/httpd/conf/httpd.conf,