nginx架构探究

  • 概念
    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

    -nginx vs apache vs lighttpd
    三大web服务器比较

    建议方案:
    Apache 后台服务器(主要处理php及一些功能请求 如:中文url)
    Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)
    Lighttpd 图片服务器
    总体来说,随着nginx功能得完善将使他成为今后web server得主流。

  • nginx架构(进程模型)

    nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。进程模型如下:

    nginx进程模型

    详细参考nginx初探

  • 多线程模型 VS 多进程模型

    • 对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销
    • 采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。
    • nginx采用多worker的方式来处理请求,每个worker里面只有一个主线程,那能够处理的并发数很有限啊,多少个worker就能处理多少个并发,何来高并发呢?非也,这就是nginx的高明之处,nginx采用了异步非阻塞的方式来处理请求,也就是说,nginx是可以同时处理成千上万个请求的。
  • 同步阻塞 VS 异步阻塞

    • 采用epoll实现异步阻塞 ,实现更高的并发性
  • 事件模型

    • 事件模型种类
      • 网络事件(异步非阻塞解决)
      • 信号(epoll_wait)
      • 定时器 (nginx里面的定时器事件是放在一颗维护定时器的红黑树里面)
        epoll_create、epoll_ctl、epoll_wait,使用红黑树和双向链表实现高效。
  • nginx环境搭建(Ubuntu)

    参考Ubunt下搭建Nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值