web服务器

Web服务器架设基础篇

妖精的绣舞 提交于 2019-12-01 20:03:09
概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。 Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器(这一点可以自行百度百科), Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。 Web服务器 约等于 HTTP服务器 + 其他服务 目前所熟知的Web服务器有很多,其最主流的是 Apache, Nginx, IIS 各大Web服务器的实现细节都不同,是为了某种情形而设计开发的。但是它们的基础工作原理是相同的,这也是本次基础篇所讲解的内容。 一、Web服务器工作原理图解 首先我们暂时不考虑HTTP协议的各种请求方式,我们先跟着**(Web服务器工作原理总体描述01)这张图,将一次Web服务的工作流程过一遍,我们假设以浏览器作为客户端 (1) 用户做出了一个操作,可以是填写网址敲回车,可以是点击链接,可以是点击按键等,接着浏览器获取了该事件。 (2) 浏览器与对端服务程序建立TCP连接。 (3)

深度长文回顾web基础组件

左心房为你撑大大i 提交于 2019-12-01 18:58:49
摘自: https://www.cnblogs.com/ZhuChangwu/p/11712899.html 深度长文回顾web基础组件 什么是Serlvet ? 全称 server applet 运行在服务端的小程序: 首先来说,这个servlet是java语言编写的出来的应用程序,换句话说servlet拥有java语言全部的优点,比如跨越平台,一次编译到处运行 其次: 相对于CGI(common gateway interface)规范而言,CGI是针对每一个用户的请求 创建一个进程处理 ,而servlet所在的服务器会对每一个请求 创建一个线程 来处理,虽然线程数量有上限,但是相对于创建进程来说,后者对系统资源的开销更小 然后就是: 现在盛行javaWeb服务器Tomcat也是java语言编写的,毕竟Tomcat有Serlvet容器支持,所以servlet和web服务器之间无缝连接 Servlet其实一个接口,一套规范,不同的厂家对它有不同的实现,tomcat也是如此, web服务器会把解析http协议信息的逻辑封装进他们的Servlet中,比如将用户发送的请求(request) HttpRequestServlet , 把响应给用户http报文的逻辑封装进 HttpResponseServlet 中, 然后web服务器负责不同组件,不同servlet之间的调度关系,

深度长文回顾web基础组件

ぐ巨炮叔叔 提交于 2019-12-01 18:48:50
什么是Serlvet ? 全称 server applet 运行在服务端的小程序: 首先来说,这个servlet是java语言编写的出来的应用程序,换句话说servlet拥有java语言全部的优点,比如跨越平台,一次编译到处运行 其次: 相对于CGI(common gateway interface)规范而言,CGI是针对每一个用户的请求 创建一个进程处理 ,而servlet所在的服务器会对每一个请求 创建一个线程 来处理,虽然线程数量有上限,但是相对于创建进程来说,后者对系统资源的开销更小 然后就是: 现在盛行javaWeb服务器Tomcat也是java语言编写的,毕竟Tomcat有Serlvet容器支持,所以servlet和web服务器之间无缝连接 Servlet其实一个接口,一套规范,不同的厂家对它有不同的实现,tomcat也是如此, web服务器会把解析http协议信息的逻辑封装进他们的Servlet中,比如将用户发送的请求(request) HttpRequestServlet , 把响应给用户http报文的逻辑封装进 HttpResponseServlet 中, 然后web服务器负责不同组件,不同servlet之间的调度关系, 什么是调度呢? 比如说: 通过某个URL找到指定的Servlet,回调Servlet的 service() 方法处理请求

计算机添加静态路由实验

£可爱£侵袭症+ 提交于 2019-12-01 17:13:32
本内容来自韩立刚老师主编的《计算机网络原理创新教程》第6.4.7小节,关于给计算机添加路由的一个应用场景。 如图所示,某公司在电信机房部署了一个web服务器,该web服务器需要访问数据库服务器。为了安全起见,该公司在电信机房又部署了一个路由器和交换机,将数据库服务器单独部署在一个网段(公司内网)。在企业路由器上没有添加任何路由,在电信的路由器上也没有添加到内网的路由(电信的路由器不可能添加到私网的路由)。为了让Internet上的主机能访问web服务器,该web服务器的默认网关指向电信的路由器,但这样该web服务器将不能访问内网的数据库服务器。怎样才能鱼与熊掌兼得呢?这需要在web服务器上添加一条到内网的路由。 该实验使用华为eNSP模拟器完成。为了能够在web服务器上添加路由,web服务器使用一台Windows虚拟机代替,该虚拟机网络放置在VMnet1网段 ,通过Cloud实现Windows虚拟机与图中网络相连,Cloud的设置如下图所示: web服务器(虚拟机)的ip地址设置如下(网关指向电信的路由器): 经测试,图中右边的计算机192.168.0.2能够ping通web服务器,但web服务器不能ping通内网的数据库服务器。这时需要在web服务器上添加一条静态路由,如下: 或者添加一条主机路由: -p表示永久添加,下次启动还有效。 如果要删除到172.16.0.0

云计算openstack共享组件-Memcache缓存系统(2)

让人想犯罪 __ 提交于 2019-12-01 16:18:31
一、缓存系统 一、静态web页面: 1、在静态Web程序中,客户端使用Web浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。 2、为了让静态web页面显示更加好看,使用javascript/VBScript/ajax(AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。)但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。 3、静态web无法连接数据库; 4、静态web资源开发技术:HTML; 5、由于现在的web页面中,大量使用JS,导致浏览器打开页面,就会占用大量的内存,服务端的压力是减轻了,但压力转移到了客户端。 二、动态web页面: 1、动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request)

HTTP/1.1与HTTP/2有什么区别?

↘锁芯ラ 提交于 2019-12-01 12:15:30
介绍 超文本传输​​协议(HTTP)是一种应用协议,自1989年发明以来,它一直是事实上在万维网上进行通信的标准。从1997年发布HTTP / 1.1到最近,对它的修改很少。协议。但是在2015年,重新构想的版本称为HTTP / 2投入使用,它提供了几种减少延迟的方法,尤其是在处理移动平台以及服务器密集型图形和视频时。此后HTTP / 2变得越来越流行,据估计,世界上约有三分之一的网站都支持HTTP / 2。在这种瞬息万变的格局中,Web开发人员可以从了解HTTP / 1.1和HTTP / 2之间的技术差异中受益,从而使他们可以就不断发展的最佳实践做出明智而有效的决策。 阅读本文之后,您将了解HTTP / 1.1和HTTP / 2之间的主要区别,重点介绍HTTP / 2为实现更有效的Web协议而采取的技术更改。 ### 背景 为了具体说明HTTP / 2对HTTP / 1.1所做的特定更改,让我们首先从较高的角度看一下它们的历史发展和基本工作。 #### HTTP / 1.1 HTTP由Timothy Berners-Lee于1989年开发,作为万维网的通信标准,HTTP是一种顶级应用程序协议,它在客户端计算机与本地或远程Web服务器之间交换信息。在此过程中,客户端通过调用类似或的方法向服务器发送基于文本的请求。作为响应,服务器将HTML页面之类的资源发送回客户端。GETPOST

细说分布式Session管理

孤街浪徒 提交于 2019-12-01 11:34:02
为什么要使用分布式Session Web应用在单机部署的情况下,Session是被单个应用服务器存储管理的,由于只有一个应用服务器,用户的所有请求都是通过它进行响应处理的,所以能够很容易实现会话跟踪和保持。随着业务量的增长,系统架构需要做出调整以适应发展的需要,可能会使用分布式架构或微服务架构,无论使用哪种架构方式,应用系统单机部署的模式已经不能满足需求,所以会将应用系统部署到多台应用服务器上,用户的请求也会通过负载均衡转发到某个具体应用服务器上执行,可能会出现在A1系统登录后创建并保存Session,再次发起请求,请求被转发到A2系统上显示未登录的情况,此时单机部署模式下的Session机制已不能满足要求。所以,在分布式架构或微服务架构下,必须保证一个应用服务器上保存Session后,其它应用服务器可以同步或共享这个Session。 分布式session管理实现方案 分布式Session有如下几种实现方式。 1.Session复制 在支持Session复制的Web服务器上,通过修改Web服务器的配置,可以实现将Session同步到其它Web服务器上,达到每个Web服务器上都保存一致的Session。 优点:代码上不需要做支持和修改。 缺点:需要依赖支持的Web服务器,一旦更换成不支持的Web服务器就不能使用了,在数据量很大的情况下不仅占用网络资源,而且会导致延迟。 适用场景

高并发Web服务的演变—节约系统内存和CPU

梦想的初衷 提交于 2019-12-01 11:12:24
#0 系列目录# 应用系统架构 大型网站技术架构的演进与设计 大型网站技术架构的实践 大型网站图片服务器架构的演进 大型网站架构的灵魂—性能 大型网站架构的缓存 亿级Web系统搭建—单机到分布式集群 高并发Web服务的演变—节约系统内存和CPU #1 越来越多的并发连接数# 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战。以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置。虽然现在的硬件越来越便宜,但是一味地通过增加机器来解决并发量的增长,成本是非常高昂的。 结合技术优化方案,才是更有效的解决方法 。 并发连接数为什么呈指数增长?实际上,从这几年的用户基数上看,这个数量并没有出现指数增长,因此它并非主要原因。 主要原因,还是web变得更复杂,交互更丰富所导致的 。 ##1.1 页面元素增多,交互复杂## Web页面元素越来越多,更为丰富。更多的资源元素,意味着更多的下载请求。Web系统的交互越来越复杂,交互场景和次数也大幅增加。以“www.qq.com”的首页为例子,刷新一次,大概会有244个请求。并且,在页面打开完成之后,还会有一些定时的查询或者上报请求持续运作。 目前的Http请求, 为了减少反复的创建和销毁连接行为,通常都建立长连接(Connection keep-alive) 。一经建立

Python Web部署方式总结

廉价感情. 提交于 2019-12-01 11:02:58
学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情。相比起来,Python在web应 用上的部署就繁杂的多,主要是工具繁多,主流服务器支持不足,在了解Python的生产环境部署方式之前,先明确一些概念!很重要! CGI:   CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许 Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。通俗的讲CGI 就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。 CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。   CGI方式在遇到连接请求(用户请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork- and-execute模式。所以用cgi方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。当用户请求数 量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。 CGI脚本工作流程

闲谈 Web 图片服务器

半腔热情 提交于 2019-12-01 10:59:39
现在很多中小网站(尤其是 Web 2.0 站点) 都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解,抛砖引玉,以期能引出更具价值的信息。 事关图片的存储 把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很;如果有能力自己开发单独存储图片的文件系统,那么也不用接着往下看了。 如果上述条件不具备,只想在普通的硬盘上存储,首先还是要考虑一下物理硬盘的实际处理能力。是 7200 转的还是 15000 转的,实际表现差别就很大。是选择 ReiserFS 还是 Ext3 ,怎么也要测试一下吧? 创建文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上做取舍,同时防患于未然,注意单个文件系统下文件个数别达到极限。 独立,独立的服务器 无论从管理上,还是从性能上看,只要有可能,尽量部署独立的图片服务器。这几乎成为常识了(不过在我做过面向 Web 的项目之前就这个问题也被人笑话过)。具备独立的图片服务器或者服务器集群后,在 Web 服务器上就可以有针对性的进行配置优化。比如采用传说中 更有效率的 Lighttpd 。 如果不想在几台机器间同步所有图片,只用 NFS 模式共享一下即可。注意软、硬连接可能带来的问题,以及 NFS