Nginx介绍
一、 什么是Nginx
Nginx[engine x]是一个免费开源Web服务器,是一个HTTP和反向代理服务器,邮件代理服务器, 和一个通用的 TCP/UDP 代理服务器,最初由俄罗斯软件工程师Igor Sysoev撰写。
二、为什么要使用Nginx
nginx专注于高性能、高并发性和低内存使用率。能够在高并发下给网站提供稳定的服务。
三、Nginx的特点
背景
首先有一个用户C,三台服务器S1、S2和S3,但S1对外网开放,S2和S3不对外网开放,还有一份资源D,资源D放在服务器S2和S3上。
正向代理
用户C明确的知道自己想要访问的资源D在服务器S2上,但是用户没有办法直接访问服务器S2,用户C想到服务器S1和S2在同一局域网并且可相互访问,而自己可以访问服务器S1,所以用户C就通过服务器S1去访问服务器S2上的资源D。
正向代理对于用户C来说他明确知道他要访问的资源D在哪个服务器上;对于服务器S1来说他只充当用户C的中间代理角色;而对于服务器S2来说他只知道访问他的资源的是服务器S1,根本不知道用户C的存在。
反向代理
依据上面的背景,这是用户C并不知道资源D在服务器S2和S3上面,他只知道访问服务器S1就可以得到资源D,于是他每次都是直接访问服务器S1,只不过提供给用户C资源的都是来自服务器S2或者S3.
反向代理对于用户C来说,他是不知道资源D具体在哪里,也不知道具体由谁提供。
对于服务器S1来说每次都接受用户的请求,然后再把请求根据调度策略交给提供资源D的服务器S2或者S3,对于服务器S2和S3来说同样也都不知道访问这份资源D的真实用户是谁,只是和服务器S1进行交互。
负载均衡
Nginx根据一定的规则,将请求分发到各个服务器上,由原来的请求集中到单个服务器转为将请求分发到多个服务器其中,来降低单个服务器的压力,这就是负载均衡。
动静分离
动静分离是指在web服务架构中,将静态请求和动态请求分开,进而提升整个服务访问性能。
nginx动静分离,指的是有nginx将客户点请求进行分类转发,静态资源请求(如html、css、图片等等)由静态资源服务器处理,动态资源请求(如jsp页面、servlet)由例如tomcat服务器处理。tomcat可以处理动态和静态资源,但是tomcat处理静态资源的效率并不高。利用nginx实现动静分离,能够让tomcat专注与处理动态资源,静态资源统一由静态资源服务器处理,从而提高整个服务系统的性能。