Nginx高性能Web服务器

1.Nginx简介

1.1 Web服务器(了解

1.1.1 什么是Web服务器

      WEB服务器也称为WWW服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。

1.1.2 常用Web服务器

Apache、Nginx、Lighttpd、Tomcat、IBM WebSphere,IIS, JBoss,WebLogic

  1. Apache是世界上应用最多的WEB服务器,优势主要在于源代码开放、有一支开放的开发队伍、支持跨平台应用以及其可移植性等。Apache的模块支持非常丰富,虽在速度和性能上不及其他轻量级WEB服务器,是属于重量级产品,所消耗的内存也比其他WEB服务器要高。
  2. Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll、kqueue、eventport最为网络I/O模型,在高连接并发的情况下,能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。
  3. Lighttpd是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的WEB Server环境,它具有内存开销低、CPU占有率低、效能好,以及模块丰富等特点。支持FastCGI、CGI、Auth、输出压缩、URL重写及Alias等重要功能,属于轻量级WEB服务器。
  4. Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的web应用软件容器,Tomcat server是根据servlet和jsp规范执行的,因此也可以说Tomcat server实行了Apache-Jakarta规范,且比绝大多数商用应用软件服务器要好,但是,tomcat对静态文件和高并发的处理比较弱
  5. IBM WebSphere是一种功能完善、开放的WEB应用程序服务器,它基于Java的应用环境,建立、部署和管理Internet和Intranet Web应用程序。相对于其他流行的WEB服务器而言,应用的数量很少。
  6. IIS 是微软的Internet Information Server的简称。主要是用来提供Web服务的,当然是针对它自己的产品asp的。
  7. JBoss 免费,JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。它体现了J2EE规范中最新的技术,含有Jsp和Servlet容器,也就可以做web容器,也包含EJB容器,是完整的J2EE应用服务器。
  8. WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的 开发、集成、部署和管理之中。

常用服务器对比:

1.2 正向代理和反向代理(理解)

1.2.1正向代理

正向代理也是大家最常接触的到的代理模式,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。

    简单一点:A向C借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。

通常来说,由于GreatWall的存在,我们不能直接访问大部分国外的网站,需要一些国外的服务器做跳板,科学上网就是使用的正向代理。

1.2.2 反向代理

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

    理解起来有些抽象,可以这么说:A向B借钱,B没有拿自己的钱,而是悄悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他并不知道C的存在。

1.2.3 正向代理和反向代理的区别

  • 位置不同 
    正向代理,架设在客户机和目标主机之间; 
    反向代理,架设在服务器端;
  • 代理对象不同 
    正向代理,代理客户端,服务端不知道实际发起请求的客户端; 
    反向代理,代理服务端,客户端不知道实际提供服务的服务端; 
  • 作用不同

正向代理

 1. 访问原来无法访问的资源 
     2. 用作缓存,加速访问速度 
     3. 对客户端访问授权,上网进行认证 
     4. 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

5. 爬虫突破IP封锁

反向代理

1. 保护内网安全 
 2. 负载均衡 
 3. 缓存,减少服务器的压力 

1.3 Nginx的用武之地(了解) 

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

支持高并发是Nginx被广泛应用的原因,官方号称能支持3万~5万的并发请求,且内存和CPU的占用还相当低,并发数量支持是Apache的10倍。

先解释一下并发概念:

网站访问量的常用衡量标准:独立访客(UV) 和 综合浏览量(PV),一般以日为单位来衡量和计算。

独立访客(UV):指一定时间范围内相同访客多次访问网站,只计算为1个独立访客。

综合浏览量(PV):指一定时间范围内页面浏览量或点击量,用户每次刷新即被计算一次。

如何使用PV计算带宽

计算公式是:网站独享带宽=一天总的PV值÷ 一天总时间(换算到S)*平均页面大小(单位KB)* 8

例如:一个网站PV=100W/日,平均一个页面0.6M

带宽 =  1000000 / 86400()* 0.6M * 8 = 300 Mbps

高峰期 * 5

PV与并发(QPS)

并发QPS 的单位是 :请求数/秒

计算公式是:并发连接数 = PV / 统计时间 * 页面衍生连接次数 * http响应时间 * 因数 / web服务器数量;

页面衍生连接次数: 一个页面请求,会有好几次http连接,如外部的css, js,图片等,这个根据实际情况而定。

http响应时间: 平均一个http请求的响应时间,可以使用1秒或更少。

因数: 峰值流量 和平均流量的倍数,一般使用5 ,最好根据实际情况计算后得出。

例子:

10w PV的并发连接数: (100000PV/ 86400秒 * 50个派生连接数 * 1秒内响应 * 5倍峰值) / 1台Web服务器 = 289 并发连接数

所以,如果我们能够测试出单机的并发连接数,和 日pv 数,那么我们同样也能估算出需要web的服务器数量。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值