Nginx介绍

1 、什么是Nginx

Nginx(engine x)是一个高性能HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务                  --来自百度百科

主要功能反向代理

通过配置文件可以实现集群和负载均衡

静态资源虚拟化

 

2、常见的服务器

MS IIS                      asp.net

Weblogic、Jboss     传统行业 ERP/物流/电信/金融

Tomcat、Jetty    J2EE

Apache、Nginx    静态服务、反向代理

Netty          高性能服务器编程

 

3、什么是正向代理

1) 客户端请求目标服务器之间的一个代理服务器

2) 请求会先经过代理服务器,然后再转发请求到目标服务器,获得内容后最后响应给客户端

 

4、什么是反向代理

用户请求目标服务器,由代理服务器决定访问哪个IP

 

5、Nginx的进程模型

master进程: 主进程。master进程管理这工作进程,相当于老板管理这员工; master进程监控这worker进程,当worker进程异常退出,master重新启动一个新的worker进程。

worker进程: 工作进程。worker进程是为master进程服务的。

如下图所示:

 

信号: 由master进程传递给worker进程

./nginx  -s stop

./nginx -s quit

./nginx -s reload

./nginx -t

 

 

 修改工作进程数量为2个

vi nginx.conf

worker_processes  2

检查修改的配置文件是否正确 ../sbin/nginx -t

 

 重新加载nginx   ../sbin/nginx -s reload,可以看到有两个工作进程 ps -ef| grep nginx

 

 

进程模型如下图所示:

Nginx介绍_第1张图片

 

 多进程的模式优点: 进程之间是相互独立的,一个worker进程退出,其它进程还能正常工作。

 

6、Nginx处理web请求机制

Worker抢占机制:

假设如下图所示有三个工作进程,一个Client(处理请求),当一个web请求进入nginx后,这里有三个worker,由哪个worker去处理呢? 这里有一个accept_mutex 互斥锁,和Client是对应的。哪个worker抢到了互斥锁,就由哪个worker来处理。

如下图:由worker1抢到了互斥锁,那么worker1就和client建立了联系。worker1对请求进行读取,解析,和响应。将数据返回给客户端,这样请求就结束了。

Nginx介绍_第2张图片

 

 

 

 

事件处理

传统服务器事件处理

Nginx介绍_第3张图片

 

 当Client1和worker1阻塞后,Client2和Client3只能等待了。 可以再建一个worker2来处理Client2和Client3.

 

Nginx事件处理(类似于多路复用器模式)

Nginx使用异步非阻塞模式,底层使用了linux的epoll模型,当Client1,Client2和worker阻塞后,clent3和worker1还能正常处理。

Nginx介绍_第4张图片

配置worker的最大连接数

events {
    # 默认使用epoll
    use epoll;
    # 每个worker允许连接的客户端最大连接数
    worker_connections  10240;
}

  

 

 

7、nginx.conf 配置结构

1) main :全局配置

2) event :配置工作模式以及连接数

3) http: http 模块相关配置

  3.1) server 虚拟主机配置,可以有多个

    3.1.1) location 路由规则,表达式

    3.1.2) upstream 集群,内网服务器

 

8、Nginx模块

Nginx介绍_第5张图片

 

9、四层、七层与DNS负载均衡

1) 四层负载均衡

F5 硬负载均衡

LVS 四层负载均衡

Haproxy四层负载均衡

Nginx 四层负载均衡 1.9版本以后

 

2) 七层负载均衡

Nginx 七层负载均衡

Haproxy 七层负载均衡

apache 七层负载均衡

 

3) DNS地域负载均衡

Nginx介绍_第6张图片

 

你可能感兴趣的:(Nginx介绍)