版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux基础与项目实践任务七Web服务器配置0203使用Nginx配置Web服务器使用Apache配置Web服务器01WWW与HTTP协议简介04使用Nginx配置企业Web服务器WWW与HTTP协议简介PART01WWW和Web服务3万维网(WorldWideWeb,WWW)通常被称为Web,是Internet提供的一种信息检索技术,起源于CERN(),其发明者是TimBerners-Lee,最初的目的是提供一个统一的接口,使分散于世界各地的科学家能够方便地访问各种形式的信息。WWW提供一种交互式图形界面的互联网服务,具有强大的信息连接功能,使成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等机构和个人的最新信息和各种服务,Web服务具体有如下特点:lWeb是图形化的lWeb是易于导航的lWeb是动态的lWeb是交互式的lWeb是与平台无关的lWeb是分布式的WWW和Web服务器4Web相关组件组件说明统一资源标识符URIURI用有含义的字符串标识互联网上的资源(RFC3986),其子集统一资源定位符(UniformResourceLocator,URL)是描述资源在互联网上进行访问方法的一种简洁的表示,是互联网上标准资源的地址Web客户和Web服务器Web系统是基于客户/服务器、请求/响应模式运作的超文本传输协议HTTP规定了Web客户和Web服务器之间交换信息的格式和方法Web缓存和Web代理HTTP协议定义了客户端缓存机制。另外架设Web缓存服务器的内容分发网络可以加快客户端访问。Web代理对于Web客户来说是服务,而对于Web服务器来说是客户。也就是说代理同时扮演着客户和服务器的双重身份。代理除了可以正常转发客户和服务器之间的交互信息之外,还可以过滤不希望的Web请求,实现高速缓存等Cookie和Session机制HTTP是一个无状态协议,因此当Web服务器将Web客户请求的响应发送出去后,服务器便不必再保存任何信息Web服务器可以指示Web客户以存储Cookie的方式在一系列请求和响应之间维持状态,而服务器则采用Session机制保持状态Web内容的构建组件使用HTML/XHTML、CSS、Javascript构建静态Web页面使用CGI、PHP、Python、Ruby、JavaServlet、Node.js等技术构建动态Web应用使用各种数据发布格式及语言(XML、YAML、JSON、RSS/Atom)交换数据WWW和Web服务器5Web系统是客户/服务器式的,包括Web客户和Web服务器。最典型的Web客户是Web浏览器。通常将Web客户和Web浏览器视为同义语。但严格地讲,可以向Web服务器发送HTTP请求的程序都是Web客户,Web浏览器只是Web客户的一种,其他的Web客户还包括像wget、curl等。
Web浏览器和Web服务器的职责Web浏览器的职责Web服务器的职责生成Web请求(在浏览器地址栏输入URL或单击页面链接时生成)通过网络将Web请求发送给Web服务器接收从服务器传回的Web文档解释服务器传来的Web文档,并将结果显示在屏幕上默认监听TCP的80端口接收Web客户请求检查请求的合法性,包括安全性屏蔽针对请求获取并制作Web文档将信息发送给提出请求的客户机HTTP协议6超文本传输协议(HyperTextTransferProtocol,HTTP)是一种用于传输超文本文档的应用层协议,是Web数据通信的基础。超文本(HyperText)是结构化的文本,使用含有文本的节点之间的逻辑连接(超链接)。HTTP是交换或转移超文本的协议。HTTP协议特点HTTP协议具有如下特点。lURI资源识别:HTTP依赖于URI,HTTP在其一切事务中使用URI来识别Web上的资源。l请求/响应方式:HTTP请求由客户机发出,服务器用响应消息应答。流向是从客户端到服务器。l无状态性:HTTP是一个无状态协议,当跨越不同的请求响应时,客户机或服务器不维持任何状态。每一对请求和响应被作为独立的消息交换处理。l携带元数据:与资源相关的信息包含在Web传输中。元数据是与资源相关的信息,但并不是资源本身的一个组成部分,如资源内容的类型text/html;资源编码的类型UTF-8;资源的大小等。HTTP协议7HTTP标准是由互联网工程任务组(InternetEngineeringTaskForce,IETF)和万维网联盟(WorldWideWebConsortium,W3C)协作开发的,最终形成RFC标准。
HTTP协议版本版本说明HTTP/1.01996年发布HTTP/1.0标准(RFC1945)HTTP/1.1当前广泛使用的协议标准。1997年发布HTTP/1.1标准(RFC2068),1999年更新为RFC26162007年HTTPbis工作组成立,部分修订和澄清了HTTP/1.1的RFC2616,并拆分为如下6个RFCRFC7230,HTTP/1.1:MessageSyntaxandRoutingRFC7231,HTTP/1.1:SemanticsandContentRFC7232,HTTP/1.1:ConditionalRequestsRFC7233,HTTP/1.1:RangeRequestsRFC7234,HTTP/1.1:CachingRFC7235,HTTP/1.1:AuthenticationHTTP/22015年发布2的标准(RFC7540)HTTP协议8HTTP是一种基于TCP协议的应用协议,在客户端和服务器之间有3种不同的HTTP通信方式,分别如下:l传统方式:当用户需要访问一个网页或其页面资源文件(如CSS文件、图片文件等)时,客户端打开一个连接,发送单个请求给服务,而后接收从服务器发回的响应,然后关闭连接。当需要访问另一个网页或其页面资源文件时重新建立连接,周而复始。l持久连接(Keep-alive)方式:客户端打开一个连接,可以依次发送多个请求给服务器并接收从服务器发回的多个响应,每接收一个服务器响应之后才会发送下一个请求给服务器。只要任意一端未明确提出断开连接,则会保持TCP连接状态。l管线化(Pipelining)方式:客户端打开一个连接,可以同时发送多个请求给服务器并接收从服务器发回的多个响应,客户端不必等待获取上一个请求的响应亦可直接发送下一个请求,从而大大加快了处理速度。这是持久连接方式的改进。HTTP协议9HTTP请求方式简称HTTP方法(HTTPmethod),包含在HTTP头中,用于告知服务器客户请求信息的方式。HTTP的请求方法
方法说明协议对应的CRUD操作HEAD获取HTTP头。用于验证链接、验证可访问性,并检查任何最近的修改1.0、1.1-GET获取资源。当服务器响应客户请求时会包含一个消息主体1.0、1.1ReadPOST将数据上传到服务器1.0、1.1CreatePUT与POST类似,区别在于PUT支持状态统一性1.0、1.1UpdateDELETE使用该请求删除已识别的资源1.0、1.1DeleteCONNECT要求用隧道协议连接代理1.1-OPTIONS用于从客户端请求通信选项,询问支持的方法1.1-TRACE跟踪路径,用于诊断和测试1.1-HTTP协议10HTTP的状态码分类说明状态码举例信息1xx表明服务端接收了客户端请求100:通知客户端它的部分请求已被服务器接收,服务器希望客户端继续成功2xx客户端发送的请求被服务端成功接收并成功进行了处理200:服务器成功接收并处理了客户端的请求206:服务器已经成功处理了部分GET请求,下载工具使用此类响应状态实现断点续传重定向3xx服务端给客户端返回用于重定向的信息301:被请求的资源已永久移动到新位置,并且将来对此资源的引用都使用响应返回的URI302:请求的资源现在临时从不同的URI响应请求304:被请求的资源未发生变化,浏览器可以利用本地缓存展示页面客户端错误4xx客户端的请求有非法内容400:客户端请求错误401:未经授权的访问403:客户端请求被服务器所禁止404:客户端所请求的URL在服务器不存在服务器错误5xx服务端未能正常处理客户端的请求而出现意外错误500:服务器在处理客户端请求时出现异常501:服务器未实现客户端请求的方法或内容502:中间代理返回给客户端的出错信息,表明服务器返回给代理时出错503:服务器由于负载过高或其他错误而无法正常响应客户端请求504:中间代理返回给客户端的出错信息,表明代理连接服务器出现超时使用Apache配置Web服务器PART02Apache概述12搭建Web服务器的软件有很多,在Linux环境下主要的Web服务器软件有:Apache(/)Nginx(/)Lighttpd()Cherokee()据统计,ApacheWeb服务器是当前使用比例最高的Web服务,本书首先介绍使用Apache的配置和使用。Apache概述13Apache的良好特性保证了它可以高效且稳定的运行。其特性主要表现在:l开放源代码、跨平台应用l模块化设计、运行稳定、良好的安全性l为不同平台设计了提高性能的不同多处理模块(MPM)l实现了动态共享对象(DSO),允许在运行时动态装载功能模块l支持最新的HTTP1.1协议l支持虚拟主机、支持HTTP认证、集成了代理服务、支持安全Socket层(SSL)l使用简单而强有力的基于文本的配置文件,具有可定制的服务器日志l支持通用网关接口CGI、FastCGI、服务器端包含命令(SSI)l支持PHP、Perl、Python、Ruby、JavaServlets等脚本编程语言l支持第三方软件开发商提供的大最功能模块Apache概述14Apache的结构如图所示,由内核、标准模块和第三方提供的模块三层次组成。Apache概述15Apache2.4使用多处理模块(Multi-ProcessingModule,MPM),使用此类模块会在服务器处理多个请求时,控制Apache的运行方式。ProforkMPMWorkerMPMEventMPM类型多进程模型多进程多线程混合模型多进程多线程混合模型工作方式由Apache的主控进程同时创建多个子进程,每个子进程只用一个线程处理一个连接请求由Apache的主控进程同时创建多个子进程,每个子进程再创建固定数量的线程和一个监听线程,由监听线程监听接入请求并将其传递给服务线程处理和应答是Worker模式的变种,它把服务进程从连接中分离出来,使用专门的线程来管理这些keepalive类型的线程,当有真实请求时,会停止一些keepalive类型的线程从而释放一些线程资源以接受更多多连接请求优点成熟稳定,兼容所有新老模块,是线程安全的(每个子进程只用一个线程)每个子进程中的线程通常会共享内存空间,从而减少了内存的占用;高并发下比ProforkMPM表现更优秀解决了keepalive场景下,长期被占用的线程的资源浪费问题,比WorkerMPM可以处理更多的并发进程缺点连接数比较大时非常消耗内存,不擅长处理高并发请求;使用keepalive连接时,某个子进程会一直被占据,也许中间几乎没有请求,需要一直等待到超时才会被释放,过多的子进程占据会导致在高并发场景下的无服务进程可用子进程内的多个线程共享内存会带来线程安全隐患;使用keepalive连接时,某个线程会一直被占据,也许中间几乎没有请求,需要一直等待到超时才会被释放,过多的线程占据,会导致在高并发场景下的无服务线程可用子进程内的多个线程共享内存会带来线程安全隐患;在遇到某些不兼容的模块时会失效,将会回退到Worker模式Apache配置16启动和停止Apache安装完Apache后,可以使用systemctl命令管理Apache的httpd服务,命令格式如下:#systemctl{start|stop|status|restart|reload}httpd#systemctl{enable|disable}httpd除了使用systemctl命令外,还可以使用apachectl命令来控制和管理Apach命令说明命令说明apachectlstart启动Apache服务apachectl–V或httpd–V显示Apache的编译参数apachectlstop停止Apache服务apachectl–l或httpd–l查看Apache已经编译的模块apachectlgraceful重新启动Apache服务apachectl–M或httpd–M列出所有模块,包括动态加载的apachectlstatus使用systemd显示httpd状态apachectl–t或httpd–t检查Apache配置文件的正确性apachectlfullstatus显示mod_status模块的输出apachectl–S或httpd-S检查虚拟主机配置的正确性Apache配置17Apache的配置文件
(1)主配置文件和Include指令Apache的主配置文件是httpd.conf,为了按逻辑分割配置,可以用Include或IncludeOptional指令和通配符附加许多其他配置文件。(2)基本目录的配置文件Apache除了使用主配置文件之外,还可以使用分布在整个网站目录树中的特殊文件来进行分散配置。这样的特殊配置文件称为基于目录的配置文件,这些特殊的文件名默认为.htaccess,但是也可以用AccessFileName指令来改变其名字。(3)配置文件的基本语法每一行包含一个指令,在行尾使用反斜杠“\”可以表示续行。配置文件中的指令不区分大小写,但是指令的参数(argument)通常区分大小写。以“#”开头的行被视为注解并在读取时被忽略。注解不能出现在指令的后边。空白行和指令前的空白字符将在读取时被忽略,因此可以采用缩进以保持配置层次的清晰。Apache配置18Apache的模块Apache是模块化的服务器,有两种编译方式。(1)静态编译:将核心模块和所需要的模块一次性编译。l优点:运行速度快l缺点:要增加或删除模块必须
重新编译整个Apache。(2)动态编译:只编译核心模块和DSO(动态共享对象)模块mod_so。l优点:各模块可以独立编译,并可随时用LoadModule指令加载,用于特定模块的指令可以用<IfModule>指令包含起来,使之有条件地生效。l缺点:运行速度稍慢。Apache虚拟机配置19Apache的虚拟主机主要应用于HTTP服务,将一台主机虚拟成多台Web服务器。例如,某家公司想从事提供主机代管服务,为其他企业提供Web服务,那么该公司肯定不是为每家企业都准备一台物理服务器,而是用一台功能较强大的服务器,然后用虚拟主机的方式,提供多个企业的Web服务。虽然多个Web服务都是用这一台服务器提供的,但是让访问者看起来却像是在不同的独立的服务器上获得Web服务是一样的。
用Apache设置虚拟主机服务通常有两种方案:l基于IP地址的虚拟主机:每个网站拥有不同的IP地址。l基于名字的虚拟主机:主机只有一个IP地址,可以使用不同的域名来访问不同的网站。Apache虚拟机配置20虚拟主机配置指令无论配置基于IP的虚拟主机还是配置基于域名的虚拟主机,都需要使用<VirtualHost>容器,下面是Apache的配置文件中给出的虚拟主机配置样例。<VirtualHost*:80>ServerAdminwebmaster@DocumentRoot/www/docs/ServerNameErrorLoglogs/-error_logCustomLoglogs/-access_logcommon</VirtualHost>其中lServerAdmin:用于指定当前虚拟主机的管理员E-mail地址lDocumentRoot:用于指定当前虚拟主机的根文档目录lServerName:用于指定当前虚拟主机的名称lErrorLog:用于指定当前虚拟主机的错误日志存放路径lCustomLog:用于指定当前虚拟主机的访问日志存放路径Apache虚拟机配置21主服务配置与虚拟主机配置的关系(1)覆盖性主服务器范围内的指令(在所有<VirtualHost>容器之外的指令,包括主配置文件使用Include包含的配置文件中的指令)仅在它们没有被虚拟主机的配置覆盖时才起作用。换句话说,<VirtualHost>容器中的指令会覆盖主服务器范围内同名的配置指令。(2)继承性每个虚拟主机都会从主服务器配置继承相关的配置。例如,当在<VirtualHost>容器中没有使用DirectoryIndex配置指令时,因为在主服务器配置中已经出现如下配置语句:DirectoryIndexindex.htmlApache虚拟机配置22使用虚拟主机配置文件配置虚拟主机时可以在主配置文件中进行。但是为了方便维护虚拟主机的配置,通常为某个虚拟主机或某组虚拟主机使用单独的配置文件,为此,首先修改主配置文件/etc/httpd/conf/httpd.conf,在文件尾部添加如下配置行:IncludeOptionalvhosts.d/*.conf然后使用如下命令创建存放虚拟主机配置文件的目录。#mkdir/etc/httpd/vhosts.d如此配置之后,即可在/etc/httpd/vhost.d目录下创建虚拟主机配置文件了。使用Nginx配置Web服务器PART03Nginx概述24Nginx是一款轻量级的Web服务器,其发音为“engineX”,是一个高性能HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。这里介绍Nginx主要是为了向读者说明,除了Apache服务器之外,Linux系统下还有很多种工具可以搭建Web服务器,而这其中Nginx是一个优秀的代表。Nginx做为HTTP服务器,有以下几项基本特性:l处理静态文件(如HTML静态网页及请求),处理索引文件及支持自动索引;l打开并自行管理文件描述缓存符;l提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单的负载均衡和容错;l提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡和容错;l使用Nginx的模块化提供过滤器功能,Nginx基本过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SSI以及图像缩放等;l支持HTTP下的安全套接层套接协议SSL。Nginx概述25Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,能支持高达50000个并发连接数。
Nginx具有很高的稳定性。Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。Nginx官方表示在保持10,000个无活动连接时,它只占2.5M内存,所以类似DoS这样的攻击对Nginx来说基本上是毫无用处的。
Nginx支持热部署。它的启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
Nginx采用master-slave模型(主从模型,一种优化阻塞的模型),能够充分利用SMP(对称多处理,一种并行处理技术)的优势,且能够减少工作进程在磁盘I/O的阻塞延迟。
Nginx代码质量非常高,代码规范,语法成熟,模块扩展也很容易。Nginx与Apache对比26Nginx与Apache相比的特点:l轻量级。与Apache相比,Nginx占用更少的内存及资源。l高并发。Nginx处理请求是异步非阻塞的,而Apache是阻塞型的,在高并发情况下Nginx能保持低资源低消耗高性能的特点。l高度模块化的设计,配置更为简洁。l社区活跃度高,各种高性能模块推出更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度幼儿园健康教育工作计划结尾
- 初一班主任开学第一周工作计划范文
- 七年级综合实践活动教学计划教研学习计划
- 数学教师新学期工作计划
- 新学期初三政治的总复习计划
- 幼儿园教研活动幼儿园教研活动计划书格式
- 临沂大学《中国现当代诗歌专题》2021-2022学年第一学期期末试卷
- 关于活动计划范文集锦
- 临沂大学《大学物理(Ⅱ)(上)》2023-2024学年第一学期期末试卷
- 有关秩序维护部工作计划
- 人教版四年级上册数学【选择题】专项练习100题附答案
- 建筑施工安全生产治本攻坚三年行动方案(2024-2026年)
- 《短视频拍摄与制作》课件-3短视频拍摄的三大技巧
- 小学科学苏教版六年级上册全册教案(2023秋新课标版)
- 国开《Windows网络操作系统管理》形考任务4-配置故障转移群集服务实训
- (完整)小学语文考试专用作文方格纸
- 国开电大本科《人文英语4》机考总题库
- 计价格[1999]1283号_建设项目前期工作咨询收费暂行规定
- 砼路面拆除及恢复施工方案
- 电气接地电阻测试记录(20210916061222)
- 【班海精品】部编版语文七年级上册-22.寓言四则 杞人忧天【优质课件】
评论
0/150
提交评论