前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx由浅入深

Nginx由浅入深

原创
作者头像
萧晚歌
修改2021-05-26 10:10:18
4960
修改2021-05-26 10:10:18
举报
文章被收录于专栏:linux技术分享linux技术分享

1什么是Nginx

1.1Nginx是一个开源且高性能,HTTP中间件,代理服务。

支持海量的并发

1.2常见的HTTP服务

Apache(阿帕奇基金会)-----HTTPD

微软------lls

谷歌-----GWS

nginx加Lua-------openresty

1.3Nginx应用场景

静态处理

反向代理

负载均衡

资源缓存

安全防护

认证限制

认证访问

2Nginx特性

2.1Nginx是基于Io多路复用的

Io多路复用是为了解决并发性问题,Socket作为复用

IO复用是串行的a有问题处理a的,但是a的问题要处理10个小时b就得等待10个小时

什么是I/O复用

I/O复用 解决的是并发性请求的问题。 处理多个并发请求,要产生多个I/O流来进行系统内核数据的读取。 常用的两种处理方式是串行,前一个阻塞,后面无法继续进行处理、并行处理请求-实现最大并发和吞吐。 I/O复用定义为:一个socket作为复用来完成整个I/O流的请求链接建立,处理请求则采用多线程。

IO复用(多线程, 消耗大)

老师分身,创建多个线程老师,分别处理每个学生做完的试题,这种方式采用的是多线程的处理方式。但是资源分配上、上下文切换会出现额外资源消耗。

IO多路复用(主动上报)

真正的I/O多路复用 学生(网络请求-请求数据分组到达,)主动上报自己做题的情况,复用的是老师处理学生做题情况的线程

什么是IO多路复用呢?

多个文件描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的复用,指的是复用同一个线程

仍然还是一个线程来处理多个IO流请求,但与单线程的方式不同,其由IO流来主动上报,上报了,那么这个线程就去处理,其他线程等待

I/O多路复用就通过一种机制,可以监视多个文件描述符,一旦某个文件描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。

IO多路复用实现的方式有 select poll Epoll

什么是select

I/O多路复用采用的是select 模型,即系统发出select系统调用,等待内核主动将可 用的文件描述符信息发送给应用一端,fd未准备好,应用会block住socket请 求,当fd就许后,select 会遍历维护的文件描述符发现可用的文件描述符。

select缺点

1.采用线性遍历的方式获取可用的fd文件描述符

2.可维护文件描述符大小有限制为1024

2.epoll模型

1.每当FD就绪,采用系统的回调函数之间将fd放入,效率更高。

2.最大连接无限制

fd 是(file descriptor),这种一般是BSD Socket的用法,用在Unix/Linux系统上。在Unix/Linux系统下,一个socket句柄,可以看做是一个文件,在socket上收发数据,相当于对一个文件进行读写,所以一个socket句柄,通常也用表示文件句柄的fd来表示。

linux 更改文件描述符大小的命令
代码语言:javascript
复制
ulimit -n [fd数量]

永久生效、开机启动方式

代码语言:javascript
复制
1.vi /etc/security/limits.conf 
2.- nofile 4096
3.重启操作系统

轻量级

1.功能模块少

源代码只保留与http 及核心功能代码,出于性能考虑,不像httpd 有那么丰富的插件。

2.代码模块化

易读,可进行二次改进。

CPU亲和(affinity)

将CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1什么是Nginx
  • 2Nginx特性
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档