Nginx基础知识

一、 Nginx是什么?

       Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

     区分web服务器和应用服务器,这里以apache web服务器和tomcat应用服务器为例:

       apache http server 是 http 的 web 服务器 用户响应页面请求,tomcat只是一个jsp和servet的容器,提供了环境让应用程序在里面执行。之所以只安装tomcat也可以响应web应用,是因为本身集成了http服务。既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP服务器呢?原因有下面几个:



        1. 提升对静态文件的处理性能
        2. 利用 Web 服务器来做负载均衡以及容错
        3. 无缝的升级应用程序
        这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat宕机或者是升级程序导致用户访问不了,而能完成这几个功能的、最好的 HTTP 服务器也就只有 apache 的 http server了,它跟 tomcat 的结合是最紧密和可靠的。
二、Nginx与Apache对比:

    (1) Nginx 相对于 Apache 优点:

     1) 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s
     2) 反向代理性能非常强。(可用于负载均衡)
     3) 内存和 cpu 占用率低。(为 Apache 的 1/5-1/10)
     4) 对后端服务有健康检查功能。
      5) 支持 PHP cgi 方式和 fastcgi 方式。

     6) 配置代码简洁且容易上手。 

   (2)实现原理对比:

     Nginx 的高并发得益于其采用了 epoll 模型与传统的服务器程序架构不同,epoll 是linux 内核 2.6 以后才出现的。 Nginx 采用 epoll 模型,异步非阻塞,而 Apache 采用的是select 模型

     select 特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select 需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。                          

     epoll 的特点:epoll 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高 

     补充:异步和同步、阻塞和非阻塞

     


猜你喜欢

转载自blog.csdn.net/u013178480/article/details/79812714