码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx(1):简介

时间:2015-06-10 08:59:29      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:nginx   网络   server   

  Nginx is a lightweight event-driven HTTP and reverse proxy server for web, as well as mail server.
技术分享

  Apache: Thread/Process Oriented.

  C10K challenge?
  网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被称为 C10K 问题。
  C10K 问题的最大特点是:设计不够良好的程序,其性能和连接数及机器性能的关系往往是非线性的。举个例子:如果没有考虑过 C10K 问题,一个经典的基于 select的程序能在旧服务器上很好处理 1000 并发的吞吐量,它在 2 倍性能新服务器上往往处理不了并发 2000 的吞吐量。 这是因为在策略不当时,大量操作的消耗和当前连接数 n 成线性相关。会导致单个任务的资源消耗和当前连接数的关系会是 O(n)。而服务程序需要同时对数以万计的socket 进行I/O处理,积累下来的资源消耗会相当可观,这显然会导致系统吞吐量不能和机器性能匹配。为解决这个问题,必须改变对连接提供服务的策略。

  Nginx Solution: Event-driven Architecture/Single Non-blocking Thread

  Event-driven: What is it?
  一个简单例子就是:
  1)接受请求
  2)触发一个进程里的事件(event)
  3)进程处理并返回结果

  Nginx与Apache最大的不同就是处理事务的机制不一样:
  Apache常用工作方式下,每个请求会独占一个工作线程,当并发数上到几千时,就同时有几千的线程在处理请求了。这对操作系统来说,是个不小的挑战,线程带来的内存占用非常大,线程的上下文切换带来的 cpu 开销很大,自然性能就上不去了。
  而Nginx采用的是异步非阻塞的事件处理机制,后面文章会提到。

Nginx(1):简介

标签:nginx   网络   server   

原文地址:http://blog.csdn.net/kzq_qmi/article/details/46432557

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!