1、简介

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx
是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发, 因它的稳定性、丰富的功能集、示例配置文件和
低系统资源的消耗而闻名。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like
协议下发行。特点是占有内存少, 并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好, 国
内使用 nginx 网站用户有:百度、 京东、 新浪、 网易、 腾讯、 淘宝等。

2、 功能

(1) web 服务(http)
(2)负载均衡(反向代理 proxy)
(3) web 缓存(web cache)

3、 优点

(1)高并发(静态小文件)。静态并发 1-2 万
(2)占用资源少。 2 万并发,开 10 个线程服务,内存消耗才几百 M
(3)功能种类比较多(web、 cache、 proxy)。但每个功能都不是特别强
(4) 支持 epoll 模型,使得 nginx 可以支持高并发
(5) nginx 配合动态服务和 apache 有区别
(6)利用 nginx 可以对 IP 限速,也可以限制连接数
(7)配置简单、灵活

4、 LNMP 实现原理和架构(Linux Nginx MySQL PHP)

(1) LAMP 实现:
用户请求-->Apache(:80) -->php 模块(libphp5.so) -->mysql
(2) LNMP 实现:
用户请求-->Nginx(:80) -->php 服务(FCGI :9000 ) -->mysql
当访问 php 页面时, Nginx 通过配置文件是指定的 php 解析器,用 fastcgi_passu 将请求以 http ip:9000
的形式抛给 FCGI 解析.

5、 Nginx 的应用场合

(1)静态服务器
主要是图片、视频等服务,文件后缀名主要是.html、 .js、 css、 flv 等。另一个常用工具是 lighttpd(百度贴
吧在用)。并发一般是 1-3 万
(2)动态服务
主要是 nginx+FaseCGI的方式运行 php、jsp等程序。并发一般在 500-1500.主要的瓶颈是在 FaseCG和 MySQL。
FaseCGI 的并发一般在 500-1500, MySQL 的并发一般是 300-1500。 相当于 Apache+php 或 lighttpd+FCGI php
(3)反向代理(负载均衡)
日 PV 在 2000 万以下的,都可以直接用 Nginx 做代理。竞争对手是 haproxy(软件)、 F5(硬件)、 A10(硬件)。
(4)缓存服务
相当于 Squid 或 Varnish

6、 主流 WEB 服务产品对比

(1) Apache
a、 2.2 版本非常稳定强大,据官方说 2.4 版本性能超强。
b、 Prefork 模式取消了进程创建开销,性能很高。
c、 处理动态业务数据时,因关联到后端的引擎和数据库,瓶颈不在于 Apache 本身。
d、 基于传统的 select 模型,高并发时消耗系统的资源相对多一些。
e、扩展库采用 DSO 方法。如通过 apxs 安装 php 模块
h、功能多、插件多、更稳定、更安全
(2) Nginx
a、 基于异步 IO 模型(epoll、 kqueue),性能强,能支持上万并发。
b、 对于小文件支持很好,性能很高(限静态小文件 1M)。
c、 代码优美,扩展库必须编译进主程序。
d、 系统的资源比较低。

Nginx入门篇(一)之Nginx介绍的更多相关文章

  1. Nginx入门篇

    Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 ...

  2. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  3. Nginx入门篇(七)之Nginx+keepalived高可用集群

    一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...

  4. Nginx入门篇(六)之反向代理和负载均衡

    一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...

  5. nginx入门篇----安装、部署、升级

    1.安装前准备工作下载nginx安装包依赖包:gcc pcre pcre-level  zlib zlib-devel openssl openss-level在线依赖包安装命令:yum -y ins ...

  6. Nginx入门篇(五)之LNMP环境应用

    一.LNMP组合工作原理 (1)用户通过浏览器输入域名请求Nginx web服务: (2)Nginx对请求的资源进行判断,如果是静态资源,则由Nginx返回给用户:如果是动态请求(.php文件),那么 ...

  7. Nginx入门篇(四)之常用配置解析

    1.Nginx状态信息功能 Nginx的模块当中有一个ngx_http_stub_status_module模块,这个模块主要记录Nginx的基本访问信息,要使用该模块,需要在编译的时候增加http_ ...

  8. Nginx入门篇(三)之虚拟主机配置

    一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...

  9. Nginx入门篇(二)之Nginx部署与配置文件解析

    一.Nginx编译安装 ()查看系统环境 [root@localhost tools]# cat /etc/redhat-release CentOS Linux release (Core) [ro ...

  10. Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备

    建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...

随机推荐

  1. Redis.md

    rpm 包安装 CentOS 系列系统安装redis可以通过第三方提供的rpm包进行安装: # yum install -y epel-release # yum install -y redis 源 ...

  2. 面向对象的JavaScript --- 多态

    面向对象的JavaScript --- 多态 多态 "多态"一词源于希腊文 polymorphism,拆开来看是poly(复数)+ morph(形态)+ism,从字面上我们可以理解 ...

  3. gluoncv rpn 正负样本

    https://github.com/dmlc/gluon-cv/blob/master/gluoncv/model_zoo/rpn/rpn_target.py def forward(self, i ...

  4. os x下使用sed进行字符串替换

    先举个栗子: 你想要在某个文件下下面对某写文件的 链接 或者 密码进行批量的替换,并且不想产生新的备份文件.进过一顿学习,你可能会找到类似这样的命令: sed -i 's/old_link/new_l ...

  5. 10-RabbitMQ-整合SpringBoot

    RabbitMQ整个SpringBoot SpringBoot因其配置简单.快速开发,已经成为热门的开发之一 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息 而消 ...

  6. .net增删该查DBAccess的应用

    1.首先引用dll文件 2. //DBAccess.dll引用一個dll文件    private IDBAccess _access;    private static readonly stri ...

  7. Spring(二)之入门示例

    任何编程技术,特别是入门示例,通常都是Hello World,在这里我也遵循这个业界公认的原则. 这里我使用的maven项目,大家如果想要演示,建议使用Eclipse(含maven插件)或Idea(含 ...

  8. PAT——1074. 宇宙无敌加法器(20)

    地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”.每个PAT星人都必须熟记各位数字的进制表,例如 ...

  9. 设计一个学生类&班级类

    第一题 设计一个学生类 属性:姓名.学号.年龄.成绩 设计一个班级类要求:实现向班级中添加学生.删除学生.查看学生.按照指定条件排序 属性:班级代号,所有学生 需要使用 calss, __int__, ...

  10. linux 学习第十一天

    一.配置服务说明 1.1.linux系统中的一切都是文件 1.2.配置一个服务就是在修改去配置文件 1.3.要想让新的配置文件立即生效,需要重启对应的服务 二.配置网卡 2.1.编辑配置文件 vim ...