nginx基础入门

一、nginx的基本概念

  • 负载均衡
  • 反向代理
  • 动静分离

二、nginx简介(摘自百度百科)

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

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

三、概念介绍

1、反向代理

正向代理:

介绍反向代理前,首先介绍正向代理。所谓的正向代理,就是客户端明确知道需要访问的目标服务器,由代理服务器代理访问。

比如说,现在我们需要访问www.github.com,那么我们需要在客户端配置代理服务器的ip地址,比如www.abc.com

请求时,先将请求发送到代理服务器www.abc.com,由代理服务器www.abc.com帮我们向www.github.com发送请求,并接收返回的数据转发到客户端中。

nginx基础入门_第1张图片

反向代理:

所谓的反向代理,也就是客户端并不知道我的请求会发送到哪个具体的服务器,我只将请求发送到代理服务器中,由代理服务器自动选择具体的服务器,完成请求并转发。此时,代理服务器和具体的处理服务器可以视为一个整体对外服务。

nginx基础入门_第2张图片

2、负载均衡

负载均衡的意思是,将流量分到不同的服务器上,防止单台服务器处理请求压力过大

  nginx基础入门_第3张图片

负载均衡的常见方法有如下三种:

  • 轮询法(默认方式)
  • 哈希法
  • 权重法

轮询法:

即每一个请求轮流发送送到服务器中,因此此种方式是最公平的,处理每次请求的服务器可能不同。

哈希法:

根据发送的请求ip地址,使用哈希算法计算处理请求的服务器。由于发送请求的ip地址不发生改变(不考虑DHCP),因此每次使用哈希算法计算出来的处理服务器相同,因此session不会失效

权重法:

由于服务器的性能可能存在差异,某台服务器的CPU和内存都很大,那么我们可以给予该服务器更多的请求。因此可以通过给该服务器设置更大的权重,从而处理更多的请求。

3、动静分离

将静态资源html、css、js等放在静态服务器,将jsp、servlet等放在动态服务器中

四、nginx原理

nginx基础入门_第4张图片

启动nginx服务器后,将会启动两个以上的进程,包括master进程和worker进程。worker进程可以有多个,可以根据配置文件nginx.conf修改。

nginx基础入门_第5张图片

其中,master进程主要负责管理和监控,而worker负责真正处理请求,将请求根据负载均衡算法分发到不同的服务器上。

worker进程数量选择

worker的数量根据实际CPU的数量决定,worker的数量过少,会导致CPU空闲,系统性能没能完全发挥出来

worker的数量过大,会导致进程之间的频繁切换,导致性能下降。

 

你可能感兴趣的:(nginx,nginx)