服务端之旅技术原理编程知识点

主机、服务器,代理服务器,反向代理服务器理解(自用)

2016-11-28  本文已影响577人  纸简书生

一、服务器和主机

当用作网络服务的机子时叫服务器。必须具有承担服务并且保障服务的能力,为其他网络设备提供网络服务。

最简单的一句话:主机和服务器是相对而言的。 专业的服务器的配置是很高的,不过本身从硬件上来说还是电脑主机,当用作网络服务时就叫服务器了

主机一般是指个人使用的电脑PC机。服务器一般是指用于专业用的电脑PC机,在实质上,服务器和主机没有什么意义上的区别。主机如果做为服务器也是可以的,服务器也可以当个人主机用。 然而我们平时要做为真正的服务器来使用时(一般是企业)。服务器的硬件要求要比普通的个人PC要求要高的多。比如WEB服务器,要24小时不能离线。所以在散热,耐热等方面就比普通PC要高很多。

其实服务器的模样就和电脑的主机很相似,但是服务器是网站的灵魂,是打开网站的必要载体,没有服务器的网站用户无法浏览。比如我们每天浏览的网站,其实数据均在服务器,服务器一般都在一些IDC数据中心机房以及电信等网络大厦里面。

服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,为此,服务器必须具有承担服务并且保障服务的能力。我们这里提到的服务器,主要是指的Web服务器,我们也称之为专用服务器,是专为网站业务应用的服务器,这种服务器可以向发出请求的浏览器提供文档的程序。Web服务器也是一种被动的程序,只有当服务器接收到浏览器发出的请求时,服务器才会响应。

二、代理服务器

形象的说:它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能

代理服务器也一样,比如本地网络无法直接访问一些网站或者服务器,必须通过一个代理点服务器,那个服务器和你的本地网络是可以直接ping的通的,然后你就必须设置这个代理服务器的一些参数,比如ip,端口,然后通过这个平台连接到其他网络区域。

提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。

三、反向代理服务器

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

其实代理和反向代理只是针对不同的对象而言,对于客户机发出请求来说就是代理,对于客户机收到服务端的响应而言就是反向代理

四、代理服务器与反向代理服务器的区别

代理服务器与反向代理服务器的区别讲得比较清楚

代理服务器通常分为两类

两者区别

两者的相同点在于都是用户和服务器之间的中介,完成用户请求和结果的转发。主要的不同在于:

五、Nginx

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

六、Apache与Nginx的优缺点比较

知乎-Nginx 和 Apache 各有什么优缺点?

從我個人的經驗來看,nginx是很不錯的前端服務器,負載性能很好,在老奔上開nginx,用webbench模擬10000個靜態文件請求毫不吃力。

apache對php等語言的支持很好,此外apache有強大的支持網路,發展時間相對nginx更久,bug少。但是apache有先天不支持多核心處理負載雞肋的缺點

建議使用nginx做前端,後端用apache。大型網站建議用nginx自代的集群功能。Nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。

知乎-tomcat 与 nginx,apache的区别是什么?

HTTP服务器本质上也是一种应用程序——它通常运行在服务器之上,绑定服务器的IP地址并监听某一个tcp端口来接收并处理HTTP请求,这样客户端(一般来说是IE, Firefox,Chrome这样的浏览器)就能够通过HTTP协议来获取服务器上的网页(HTML格式)、文档(PDF格式)、音频(MP4格式)、视频(MOV格式)等等资源。

是Apache HTTP Server和Nginx,绝大多数编程语言所包含的类库中也都实现了简单的HTTP服务器方便开发者使用。

HttpServer (Java HTTP Server )

Python SimpleHTTPServer

使用这些类库能够非常容易的运行一个HTTP服务器,它们都能够通过绑定IP地址并监听tcp端口来提供HTTP服务。

Tomcat:与Apache HTTP Server相比,Tomcat能够动态的生成资源并返回到客户端。

Apache HTTP ServerNginx都能够将某一个文本文件的内容通过HTTP协议返回到客户端,但是这个文本文件的内容是固定的。这个文本文件的内容是固定的——也就是说无论何时、任何人访问它得到的内容都是完全相同的,这样的资源我们称之为静态资源。

Apache HTTP ServerNginx本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过Shell、PHP、Python脚本程序来动态生成内容)。

如果想要使用Java程序来动态生成资源内容,Java Servlet技术以及衍生的Java Server Pages技术可以让Java程序也具有处理HTTP请求并且返回内容(由程序动态控制)的能力,Tomcat正是支持运行Servlet/JSP应用程序的容器(Container):

Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口

虽然Tomcat也可以认为是HTTP服务器,但通常它仍然会和Nginx配合在一起使用:

上一篇下一篇

猜你喜欢

热点阅读