威哥

学习一门技能,按照威哥的思路,一定得先理解一下这是什么,有什么用,以及怎么用,这样的学习效率才是高效的。

什么是Nginx?

jsp反向代理Java基本到进阶聊聊高并发场景下反向署理技巧Nginx RESTful API

Nginx (engine x) 是一个高性能的HTTP和反向代理web做事器,

Nginx是一款轻量级的Web 做事器/反向代理做事器及电子邮件(IMAP/POP3)代理做事器,在BSD-like 协议下发行。
其特点是霸占内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页做事器中表现较好,中国大陆利用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

为什么利用Nginx?

在传统的Web项目中,并发量小,用户利用的少。

以是在低并发的情形下,用户可以直接访问tomcat做事器,然后tomcat做事器返回给用户。

用户访问<-->Tomcat做事器

而在互联网项眼前,因单个tomcat默认并发量有限定。
如果要求量过大,会产生如下问题:

Tomcat8 默认配置的最大要求数是 150,也便是说同时支持 150 个并发,当然了,也可以将其改大。

当某个运用拥有 250 个以上并发的时候,应考虑运用做事器的集群。

详细能承载多少并发,须要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的包袱。

操作系统对付进程中的线程数有一定的限定:

Windows 每个进程中的线程数不许可超过 2000

Linux 每个进程中的线程数不许可超过 1000

(在 Java 中每开启一个线程须要耗用 1MB 的 JVM 内存空间用于作为线程栈之用。
)

Tomcat的最大并发数是可以配置的,实际利用中,最大并发数与硬件性能和CPU数量都有很大关系的。
更好的硬件,更多的处理器都

会使Tomcat支持更多的并发。

maxThreads="150" 最大并发数

minSpareThreads="10"///初始化时创建的线程数

maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再须要的socket线程。

高并发(High Concurrency)

是互联网分布式系统架构设计中必须考虑的成分之一,

它常日是指,通过设计担保系统能够同时并行处理很多要求。

高并发干系常用的一些指标有相应韶光(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per

Second),并发用户数等。

相应韶光:系统对要求做出相应的韶光。
例如系统处理一个HTTP要求须要200ms,这个200ms便是系统的相应韶光。

吞吐量:单位韶光内处理的要求数量。

QPS:每秒相应要求数。
在互联网领域,这个指标和吞吐量区分的没有这么明显。

并发用户数:同时承载正常利用系统功能的用户数量。

高可用(High Availability)

常日来描述一个别系经由专门的设计,从而减少歇工韶光,而保持其做事的高度可用性。

(一贯都能用 99.9999%)

高性能

是指做事相应韶光快,(CPU/处理器/内存)特殊是在高并发下相应韶光不会急剧增加。

Nginx特点:

高并发、高性能

可扩展性好

高可靠性热支配

BSD容许证

Nginx (engine x) 是一款轻量级的Web 做事器 、反向代理做事器及电子邮件(IMAP/POP3)代理做事器。

反向代理:

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

正向代理:

是一个位于客户端和原始做事器(origin server)之间的做事器,为了从原始做事器取得内容,客户端向代理发送一个要求并指定目标(原始做事器),然后代理向原始做事器转交要求并将得到的内容返回给客户端。
客户端才能利用正向代理。

正向代理和反向代理差异?

正向代理,是在客户真个。
比如须要访问某些国外网站,我们可能须要购买vpn。
并且vpn是在我们的用户浏览器端设置的(并不是在远真个做事器设置)。
浏览器先访问vpn地址,vpn地址转发要求,并末了将要求结果原路返回来。

反向代理是浸染在做事器真个,是一个虚拟ip(VIP)。
对付用户的一个要求,会转发到多个后端处理器中的一台来处理该详细要求。

四、Nginx下载

官方网址: http://nginx.org/

├── conf 这是nginx所有配置文件的目录

│ ├── fastcgi.conf fastcgi 干系参数的配置文件

│ ├── fastcgi.conf.default fastcgi.conf 的原始备份

│ ├── fastcgi_params fastcgi的参数文件

│ ├── fastcgi_params.default

│ ├── koi-utf

│ ├── koi-win

│ ├── mime.types 媒体类型

│ ├── mime.types.default

│ ├── nginx.conf nginx默认的主配置文件

│ ├── nginx.conf.default

│ ├── scgi_params scgi 干系参数文件

│ ├── scgi_params.default

│ ├── uwsgi_params uwsgi干系参数文件

│ ├── uwsgi_params.default

│ └── win-utf

├── fastcgi_temp fastcgi临时数据目录

├── html 这是编译安装时nginx的默认站点目录,类似Apache的默

认站点htdocs

│ ├── 50x.html 缺点页面优雅替代显示文件,例如:涌现502缺点时会调用此页

面error_page 500 502 503 504 /50x.html

│ └── index.html 默认的首页文件,index.html\index.asp\index.jsp来做网

站的首页文件

├── logs nginx默认的日志路径,包括缺点日志及访问日志

│ ├── access.log nginx的默认访问日志文件,利用tail -f access.log,可以

实时不雅观看网站的用户访问情形信息

│ ├── error.log nginx的缺点日志文件,如果nginx涌现启动故障可以查看此文

│ └── nginx.pid nginx的pid文件,nginx进程启动后,会把所有进程的ID号写

到此文件├── nginx-1.6.3 -> /application/nginx-1.6.3

├── proxy_temp 临时目录

├── sbin 这是nginx命令的目录,如nginx的启动命令nginx

│ ├── nginx Nginx的启动命令nginx

│ └── nginx.old

├── scgi_temp 临时目录

└── uwsgi_temp 临时目录

后台留言获取Nginx全套视频资料,