Nginx入门篇(一)之Nginx介绍
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介绍的更多相关文章
- Nginx入门篇
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 ...
- Nginx入门篇-基础知识与linux下安装操作
我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...
- Nginx入门篇(七)之Nginx+keepalived高可用集群
一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...
- Nginx入门篇(六)之反向代理和负载均衡
一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...
- nginx入门篇----安装、部署、升级
1.安装前准备工作下载nginx安装包依赖包:gcc pcre pcre-level zlib zlib-devel openssl openss-level在线依赖包安装命令:yum -y ins ...
- Nginx入门篇(五)之LNMP环境应用
一.LNMP组合工作原理 (1)用户通过浏览器输入域名请求Nginx web服务: (2)Nginx对请求的资源进行判断,如果是静态资源,则由Nginx返回给用户:如果是动态请求(.php文件),那么 ...
- Nginx入门篇(四)之常用配置解析
1.Nginx状态信息功能 Nginx的模块当中有一个ngx_http_stub_status_module模块,这个模块主要记录Nginx的基本访问信息,要使用该模块,需要在编译的时候增加http_ ...
- Nginx入门篇(三)之虚拟主机配置
一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...
- Nginx入门篇(二)之Nginx部署与配置文件解析
一.Nginx编译安装 ()查看系统环境 [root@localhost tools]# cat /etc/redhat-release CentOS Linux release (Core) [ro ...
- Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备
建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...
随机推荐
- POJ2187 Beauty Contest(旋转卡壳)
嘟嘟嘟 旋转卡壳模板题. 首先求出凸包. 然后\(O(n ^ 2)\)的算法很好想,但那就不叫旋转卡壳了. 考虑优化:直观的想是在枚举点的时候,对于第二层循环用二分或者三分优化,但实际上两点距离是不满 ...
- mysql 数据增删改查基本语句
增: insert insert into 表名(字段1,字段2,字段3......字段N) values(值1,值2,值3): 如果不申明插入那些字段,则默认所有字段. 如果一次可以插入多条数据 可 ...
- mysql驱动jar包下载
1.百度 maven-repo,进入maven-repo官网查找 2.查找, 如下图: 查找mysql驱动包 3.下载mysql驱动包: 4.选择版本: 5.下载:
- HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- 字符型设备驱动程序-first-printf以及点亮LED灯(一)
学习使用 Linux 的 字符型设备驱动 来 进行 . 学习地址:http://edu.51cto.com/lesson/id-25710.html 第一步: 首先写 三个函数 ,2017年5月17 ...
- 并发编程(二)------并发类容器ConcurrentMap
并发类容器: jdk5.0以后提供了多种并发类容器来替代同步类容器从而改善性能. 同步类容器的状态都是串行化的. 他们虽然实现了线程安全,但是严重降低了并发性,在多线程环境时,严重降低了应用程序的吞吐 ...
- sql-case when 条件1 then 取值1 when 条件2 then 取值2 else 取值3 end
遇到 XXX情况 就 XXX 遇不到就 XXX 结束case when …… then …… else …… end 例如一个3条件取值的字段: case when 条件1 then 取值1 when ...
- 推荐一个Oracle数据库学习网站
推荐一个我个人的Oracle数据库学习网站,比较系统性的整理,会持续更新的网站.网址: Oracle基础教程: http://www.oraclejsq.com/article/010100110.h ...
- Web—13-判断网站请求来自手机还是pc浏览器
判断网站请求来自手机还是pc浏览器 #判断网站来自mobile还是pc def checkMobile(request): """ demo : @app.route(' ...
- @property & @synthesize & @dynamic 及相关属性作用探究
@property : iOS6 引入关键词. @property name; 指示编译器自动生成 name 的 setter 和 getter 方法 : - (NSString *)name; - ...