项目11 配置Apache服务器(修改版)
温馨提示:这篇文章已超过644天没有更新,请注意相关的内容是否还可用!
项目11配置Apache服务器项目要求学校计划项目进度计划表范例计划下载计划下载计划下载课程教学计划下载为每位教师开通个人主页服务要求实现如下功能1网页文件上传完成后立即自动发布URL为httpwwwabccom用户名2在Web服务器中建立一个名为private的虚拟目录其对应的物理路径是dataprivate并配置Web服务器对该虚拟目录启用用户认证只允许user1用户访问3在Web服务器中建立一个名为test的虚拟目录其对应的物理路径是dir1test并配置Web服务器仅允许来自网络defcom域和1921681024网段的客户机访问该虚拟目录4使用19216812和19216813两个IP地址创建基于IP地址的虚拟主机其中IP地址为19216812的虚拟主机对应的主目录为varwwwip2IP地址为19216813的虚拟主机对应的主目录为varwwwip35创建基于wwwabccom和wwwdefcom两个域名的虚拟主机域名为wwwabccom虚拟主机对应的主目录为varwwwabc域名为wwwdefcom虚拟主机对应的主目录为varwwwdef项目任务分解项目要求已学知识点任务分解对应知识点本课知识点后续知识点项目分析本项目对应的工作任务安装Apache服务器的能力配置WEB服务器的能力发布个人主页的能力设置虚拟主机的能力实现基于用户和主机的访问控制的能力提高在Internet上架设WEB服务器的能力认识ApacheApache服务器一个主要的特点是完全免费并且完全公开其源代码由此用户可根据自身的需要去进行相关模块的开发Apache服务器另一个主要的特点是其跨平台性其可在UNIXWindowsLinux等多种操作系统上运行如果需要创建一个每天有数百万人访问的Web服务器Apache可能是最佳选择50的WEB服务器都采用了ApacheApache最初由Apache组织负责开发和维护httpwwwapacheorgApache的安装查看rpm–qagrephttpd安装ejectmountmntcdromcdmntcdromFedoraRPMSrpm–ivhhttpd-2052-9enti386rpmrpm–ivhhttpd-manual-2052-9enti386rpmrpm–ivhsystem-config-httpd-131-1noarchrpmcdejectApache的配置文件Apache将自己的所有配置文件和日志文件分别放在了etchttpd和varloghttpd目录下其中etchttpdconf下为配置文件varloghttpd下为日志文件在etchttpd目录下有一个链接logs可以直接进入varloghttpd目录Apache服务器的设置文件位于etchttpdconf目录下配置文件httpdconf来配置Apache服务器的行为Apache的配置文件同时它将建立varwww目录并在其下建立五个子目录html在这个目录下存放HTML主页文件cgi-bin在这个目录下可以存放一些CGI程序manualapache系统的说明文档error在这个目录下存放的是服务器的一些错误提示文件icons在这个目录下是服务器自带的一些图标启动Apache服务之后的默认首页Apache配置文件httpdconf的结构全局环境服务器
目录监听端口性能参数加载模块主机配置主机名WEB主机根目录主机目录管理个人用户网页设置首页设置虚拟主机定义任务一个人主页发布系统任务背景假设你是某学校的网络管理员学校的域名为abccom学校计划为每位教师开通个人主页服务为教师与学生之间建立沟通的平台校园网络拓扑如下图所示��������������标题�双击可键入注释再选择标题可编辑该标题�任务一个人主页发布系统任务要求学校计划为每位教师开通个人主页服务要求实现如下功能每位教师均可以自己的账号登录FTP服务器上传制作好的网页文件FTP服务器名称为ftpabccom每位教师登录FTP只对自己的主页空间有读取修改权限网页文件上传完成后立即自动发布URL为httpwwwabccom用户名任务一个人主页发布系统假设有一个教师teacher1需要在服务器wwwabccomIP地址为19216852212上拥有个人主页其设置过程如下1配置DNS服务A创建主区域abccomB在主区域文件中添加主机记录vivarnamedabccomzonewwwabccomINA19216852212ftpabccomINA19216852212C启动DNS服务servicenamedstart检测named-checkconfnamed-checkzoneabccomvarnameabccom任务一个人主页发布系统2配置ftp服务A编辑vsftpd配置文件禁止所有用户离开其根目录vietcvsftpdvsftpdconfwrite_enableYESlocal_enableYESchroot_local_userYESchroot_list_enableNOB启动ftp服务servicevsftpdrestart3在Linux系统中添加用户teacher1并为其设置密码useraddteacher1passwdteacher1=两边不能有空格参数值后面不能有空格4修改用户teacher1的主目录的属性chmod711hometeacher15在teacher1用户主目录中创建主页根目录wwwmkdirhometeacher1wwwchownteacher1teacher1hometeacher1www6在用户teacher1的www目录中创建indexhtml主页文件echoThisisteacher1sWebhometeacher1wwwindexhtml或者使用FTP服务上传网页7修改Apache服务器的配置文件httpdconfvietchttpdconfhttpdconfUserDirDisable改成UserDirwww任务一个人主页发布系统任务一个人主页发布系统8重启httpd服务在windows中打开浏览器在地址栏上输入httpwwwabccomteacher1http19216852212teacher19修改配置文件httpdconfvietchttpdconfhttpdconfAliasteacher1hometeachea1www访问方式http19216852212teacher1任务二虚拟主机系统的实现任务背景假设你是某公司的网络管理员公司的域名为abccom公司在IDC拥有一台托管的服务器该服务器运行的操作系统为Re
dHatLinux9目前老板计划新注册一家公司公司的域名为defcom为了对外宣传两家公司均要求有自己独立的网站为了节省资源老板要求你将两个网站搭建在IDC托管的那一台服务器上而该服务器仅有一个IP地址系统网络拓扑如下图所示任务二虚拟主机系统的实现任务要求项目要求实现如下功能两家公司均有自己独立的网站两家网站均具有独立的域名名称分别为wwwabccomwwwdefcom虚拟主机的基本概念虚拟主机是在一台Web服务器上可以为多个单独域名提供Web服务并且每个域名都完全独立包括具有完全独立的文档目录结构及设置这样域名之间完全独立不但使用每个域名访问到的内容完全独立并且使用另一个域名无法访问其他域名提供的网页内容虚拟主机的概念对于ISP来讲非常有用因为虽然一个单位或组织可以将自己的网页挂在具备其他域名的服务器上的下级地址上但使用独立的域名和根网址更为正式易为众人接受传统上必须自己设立一台服务器才能达到单独域名的目的然而这需要维护一个单独的服务器很多小单位缺乏足够的维护能力更为合适的方式是租用别人维护的服务器ISP也没有必要为一个机构提供一个单独的服务器完全可以使用虚拟主机能力使服务器为多个域名提供Web服务而且不同的服务互不干扰对外就表现为多个不同的服务器虚拟主机配置方式基于IP地址的虚拟主机每个虚拟主机使用一个单独的IP地址基于端口的虚拟主机所有虚拟主机对应着同一个IP地址的不同端口基于域名的虚拟主机所有虚拟主机使用同一个IP地址基于IP地址的虚拟主机VirtualHost19216810012DocumentRootvarwww1htmlServerNamewww1mylinuxorgVirtualHostVirtualHost19216810013DocumentRootvarwww2htmlServerNamewww2mylinuxorgVirtualHost虚拟主机1虚拟主机2基于域名的虚拟主机NameVirtualHost19216810012VirtualHost19216810012DocumentRootvarwww1htmlServerNamewww1mylinuxorgVirtualHostVirtualHost19216810012DocumentRootvarwww2htmlServerNamewww2mylinuxorgVirtualHost虚拟主机1虚拟主机2任务二虚拟主机系统的实现假设当前Apache服务器的IP地址是19216852212现在要在该服务器上创建两个Web站点使用的端口为标准excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载的80其域名分别为站点1wwwabccom站点2wwwdefcom站点的根目录分别为站点1homewww1站点2homewww2任务二虚拟主机系统的实现步骤1配置DNS服务A创建主区域defcomB在主区域文件中添加主机记录vivarnameddefcomzonewwwdefcomINA19216852212C启动DNS服务servicenamedstart任务二虚拟主机系统的实现2配置ftp服务A编辑vsftpd配置文件禁止所有用户离开其根目录vietcvsftpdvsftpdconfwrite_enableYESlocal_enabl
eYESchroot_local_userYESchroot_list_enableNOB启动ftp服务servicevsftpdrestart3在Linux系统中添加用户abc并为其设置密码useraddabc-ssbinnologin-dhomewww1passwdabc4修改虚拟主机根目录的属性chmod711homewww15在虚拟主机根目录中创建indexhtml主页文件echoThisisabccomsWebhomewww1indexhtml或者使用FTP服务上传网页6修改Apache服务器的配置文件httpdconf在其中定义两个虚拟主机vietchttpdconfhttpdconf任务二虚拟主机系统的实现任务二虚拟主机系统的实现NameVirtualHost19216852212VirtualHost19216852212DocumentRoothomewww1ServerNamewwwabccomVirtualHostVirtualHost19216852212DocumentRoothomewww2ServerNamewwwdefcomVirtualHost7重启httpd服务在windows中打开浏览器在地址栏上输入httpwwwabccomhttpwwwdefcom任务三访问控制基于主机的认证要求仅仅允许19216852208主机访问homewww1bkzs中的网页编辑配置文件在wwwabccom虚拟机中增加如下一段内容Directoryhomewww1bkzsorderdenyallowdenyfromallallowfrom19216852208Directory任务三访问控制基于用户名密码的认证要求用户在访问homewww1bkzs的网页时需要输入用户名和密码且只允许指定的用户进行访问编辑配置文件在wwwabccom虚拟机中增加如下一段内容Directoryhomewww1bkzsAuthNameGiveyournameandpassword"AuthTypeBasicRequirevalid-userAuthUserFilehomeusersDirectory创建用户文件及用户名和密码htpasswd-chomeusersuserabchtpasswdhomeusersuserdef作业在Apache服务器上创建两个Web站点使用的端口为标准的80其域名分别为站点1wwwusername1com站点2wwwusername2com站点的根目录分别为站点1homewww1站点2homewww2配置DNSVSFTP服务将站点样例网页上传到wwwusername1com对站点样例网页系统中的bkzs目录中网页访问采用基于用户名和密码的方式进行控制Apache服务器中重要的全局参数的设置进程和限制在使用子进程处理HTTP请求的Web服务器上由于要首先生成子进程才能处理客户的请求因此反应时间就有一点延迟但是Apache服务器使用了一个特殊技术来摆脱这个问题这就是预先生成多个空闲的子进程驻留在系统中一旦有请求出现就立即使用这些空闲的子进程进行处理这样就不存在生成子进程造成的延迟了在运行中随着客户请求的增多启动的子进程会随之增多但这些服务器副本在处理
完一次HTTP请求之后并不立即退出而是停留在计算机中等待下次请求但是空闲的子进程副本不能光增加不减少太多的空闲子进程没有处理任务也占用服务器的处理能力因此也要限制空闲副本的数量使其保持一个合适的数量使得既能及时回应客户请求又能减少不必要的进程数量Apache服务器中重要的全局参数的设置MinSpareServers10〔最小空闲服务器进程数〕MaxSpareServers20〔最大空闲服务器进程数〕根据服务器的实际情况来进行设置如果服务器性能较高并且也被频繁访问就应该增大这两个参数的设置对于高负载的专业网站这两个值应该大致相同并且等同于系统支持的最多服务器副本数量也减少不必要的副本退出StartServers8〔初始服务器进程数〕StartServers参数就是用来设置httpd启动时启动的子进程副本数量这个参数与上面定义的MinSpareServers和MaxSpareServers参数相关都是用于启动空闲子进程以提高服务器的反应速度的这个参数应该设置为前两个值之间的一个数值小于MinSpareServers和大于MaxSpareServers都没有意义Apache服务器中重要的全局参数的设置MaxClients150〔服务器支持的最多并发访问的客户数〕如果这个值设置得过大系统在繁忙时不得不在过多的进程之间进行切换来为太多的客户进行服务这样对每个客户的反应就会减慢并降低了整体的效率如果这个值设置的较小那么系统繁忙时就会拒绝一些客户的连接请求当服务器性能较高时就可以适当增加这个值的设置对于专业网站应该使用提高服务器效率的策略因此这个参数不能超过硬件本身的限制如果频繁出现拒绝访问现象就说明需要升级服务器硬件了对于非专业网站不太在意对客户浏览器的反应速度或者认为反应速度较慢也比拒绝连接好就也可以略微超过硬件条件来设置这个参数这个参数限制了MinSpareServers和MaxSpareServers的设置它们不应该大于这个参数的设置Apache服务器中重要的全局参数的设置MaxRequestsPerChild1000使用子进程的方式提供服务的Web服务常用的方式是一个子进程为一次连接服务这样造成的问题就是每次连接都需要生成退出子进程的系统操作使得这些额外的处理过程占据了计算机的大量处理能力因此最好的方式是一个子进程可以为多次连接请求服务这样就不需要这些生成退出进程的系统消耗Apache就采用了这样的方式一次连接结束后子进程并不退出而是停留在系统中等待下一次服务请求这样就极大的提高了性能Apache服务器中重要的全局参数的设置由于在处理过程中子进程要不断的申请和释放内存次数多了就会造成一些内存垃圾就会影响系统的稳定性并且影响系统资源的有效利用因此在一个副本处理过一定次数的请求之后就可以让这个子进程副本退出再从原始的httpd进程中重新复制一个干净的副本这样就能提高系统的稳定性这样每个子进程处理服务请求次数由MaxRequestPerChild定义缺省的设置值为1000这个值对于具备高稳定性特点的Linux系统来讲是过于保守的设置可以设置为1000甚至更高设置为0支持每个副本进行无限次的服务处理虽然缺省设为0可以使每个子进程处理更多的请求但如果设成非零值也有两点重要的好处1可防止意外的内存
卸漏2在服务器负载下降的时侯会自动减少子进程数Apache服务器中重要的全局参数的设置联网和地址Timeout300Timeout定义客户程序和服务器连接的超时间隔超过这个时间间隔秒后服务器将断开与客户机的连接KeepAliveOnKeepAlive参数用于支持一次连接多次传输功能这样就可以在一次连接中传递多个HTTP请求MaxKeepAliveRequests100MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数将其值设为0将支持在一次连接内进行无限次的传输请求Apache服务器中重要的全局参数的设置KeepAliveTimeout15KeepAliveTimeout测试一次连接中的多次请求传输之间的时间如果服务器已经完成了一次请求但一直没有接收到客户程序的下一次请求在间隔超过了这个参数设置的值之后服务器就断开连接Listen80Listen参数可以指定服务器除了监视标准的80端口之外还监视其他端口的HTTP请求由于系统可以同时拥有多个IP地址因此也可以指定服务器只听取对某个IP地址的HTTP请求如果没有配置这一项则服务器会回应对所有IP的请求Apache服务器中重要的全局参数的设置[用户和组]UserApacheGroupApacheUser和Group配置是Apache的安全保证Apache在打开端口之后就将其本身设置为这两个选项设置的用户和组权限进行运行这样就降低了服务器的危险性Apache服务器中重要的主机参数的设置[服务器管理员电子邮件地址]ServerAdminadminmylinuxorg[服务器主机名]ServerNamewwwmylinuxorg[web主机根目录]DocumentRootvarwwwhtmlDocumentRoot定义这个服务器对外发布的超文本文档存放的路径客户程序请求的URL就被映射为这个目录下的网页文件这个目录下的子目录以及使用符号连接指出的文件和目录都能被浏览器访问只是要在URL上使用同样的相对目录名[服务器目录]ServerRoot"etchttpd"ServerRoot用于指定守护进程httpd的运行目录httpd在启动之后自动将进程的当前目录改变为这个目录因此如果设置文件中指定的文件或目录是相对路径那么真实路径就位于这个ServerRoot定义的路径之下Apache服务器中重要的主机参数的设置默认首页DirectoryIndexindexhtmlindexhtmlvar很多情况下URL中并没有指定文档的名字而只是给出了一个目录名那么Apache服务器就自动返回这个目录下由DirectoryIndex定义的文件当然可以指定多个文件名字系统会这个目录下顺序搜索当所有由DirectoryIndex指定的文件都不存在时Apache服务器可以根据系统设置生成这个目录下的所有文件列表提供用户选择此时该目录的访问控制选项中的Indexes选项OptionsIndexes必须打开以使得服务器能够生成目录列表否则Apache将拒绝访问总结Apache软件的安装和配置文件用户个人主页的设置虚拟主机的配置Apache服务器的安全认证Apache服务器的性能配置apache服务器配置文件