nginx简介

什么是 nginx

nginx是一个HTTP和反向代理的web服务器, 处理并发能力强, 占有内存少, 据研究可以支持50000个并发连接数。

nginx可以用作正向代理和反向代理,并做动,静请求分离, 动态资源指的是代码块,动态页面。 静态资源指的是一些图片,静态页面

正向代理

客户端通过nginx访问服务器资源叫做正向代理, 需要在客户端配置nginx指定网站路由实现,举个例子, 我们在公司内网情况下去访问百度(外网),可以使用nginx做正向代理,那么我们就需要在客户端配置百度的ip路由

反向代理

客户端直接访问nginx, 由nginx去访问服务器资源返回给客户端,客户端不需要做任何配置, 对于客户端来说, nginx就是目标服务器

负载均衡

增加服务器数量,由nginx讲客户端的请求均衡分发到多台服务器中,称为负载均衡

Nginx 原理

1. mater 和 worker

  • nginx 启动后,是由两个进程组成的。master(管理者)和worker(工作者)。

  • 一个nginx 只有一个master。但可以有多个worker

  • 过来的请求由master管理,worker进行争抢式的方式去获取请求。

2. master-workers 的机制的好处

首先,对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销, 同时在编程以及问题查找时,也会方便很多。

可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作

其次,采用独立的进程,可以让互相之间不会 影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的 worker 进程。当然,worker 进程的异常退出,肯定是程序有 bug 了,异常退出,会导致当 前 worker 上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

3. 设置多少个 worker

Nginx 同 redis 类似都采用了 io 多路复用机制,每个 worker 都是一个独立的进程,但每个进 程里只有一个主线程,通过异步非阻塞的方式来处理请求, 即使是千上万个请求也不在话 下。每个 worker 的线程可以把一个 cpu 的性能发挥到极致。所以 worker 数和服务器的 cpu 数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。

4. 连接数 worker_connection

第一个:发送请求,占用了 woker 的几个连接数?

  • 答案:2 或者 4 个

第二个

:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的 最大并发数是多少?

  • 普通的静态访问最大并发数是: worker_connections * worker_processes /2,

  • 而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。

(worker_processes    可以处理的并发数)

1 一个 nginx 能建立的最大连接 数,应该是 worker_connections * worker_processes

2 对于 HTTP 请 求 本 地 资 源 来 说 , 能 够 支 持 的 最 大 并 发 数 量 是 worker_connections * worker_processes

3 如果是支持 http1.1 的浏览器每次访问要占两个连接,所以普通的静态访 问最大并发数是: worker_connections * worker_processes /2

4 而如果是 HTTP 作 为反向代 理来说,最大并发数量应该是 worker_connections * worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服 务的连接,会占用两个连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值