nginx起步与配置解释

1、什么是nginx?
Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP POP3 SMTP 代理服务器; Nginx 可以作为一个 HTTP 服务器进 行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
1.1、Nginx三个主要应用场景
静态资源服务(通过本地文件系统提供服务)
缓存、负载均衡服务器
API 服务( OpenResty
 
2、为什么选择nginx?
(1)更快
(2)高扩展性
(3)高可靠性
(4)低内存消耗
(5)单机支持10万以上的并发连接
(6)热部署
(7)最自由的BSD许可协议
 
1、IO复用是什么?
IO 多路复用是指内核一旦发现进程指定的一个或者多个 IO 条件准备读取,它就通知该进程,目前支持 I/O 多路复用的系统调用有 select poll epoll ,I/O 多路复用就是通过一种机制,一个进程可以监视多个描述符( socket ),一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读 写操作。
 
2、select跟poll
Select介绍:
监视并等待多个文件描述符的属性变化(可读、可写或错误异常)。 select 函数监视的文件描述符分 3 类,分别是 writefds readfds 、和 exceptfds 。调用
select 会阻塞,直到有描述符就绪(有数据可读、可写、或者有错误异常),或者超时( timeout 指定等待时间),函数才返回。当 select () 函数返回
后,可以通过遍历 fdset ,来找到就绪的描述符,并且描述符最大不能超过 1024
Poll 介绍:
poll 的机制与 select 类似,与 select 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll 没有最大文件描
述符数量的限制。 poll select 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是
否就绪,它的开销随着文件描述符数量的增加而线性增大。
问题:
select/poll 问题很明显,它们需要循环检测连接是否有事件。如果服务器有上百万个连接,在某一时间只有一个连接向服务器发送了数据,
select/poll 需要做循环 100 万次,其中只有 1 次是命中的,剩下的 99 9999 次都是无效的,白白浪费了 CPU 资源。
epoll:
epoll 是在 2.6 内核中提出的,是之前的 poll poll 的增强版本。相对于 select poll 来说, epoll 更加灵活,没有描述符限制 , 无需轮询。
epoll 使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中。
简单点来说就是当连接有 I/O 流事件产生的时候, epoll 就会去告诉进程哪个连接有 I/O 流事件产生,然后进程就去处理这个进程。
这里可以多加一个选择 worker 的原因,因为 worker 是基于 epoll 的异步非阻塞的服务器程序。自然, worker 能够轻松处理 10w+ 的并发连接,也就无可厚非 了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值