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互为主备,各自绑定 ...
随机推荐
- 关于crontab中的一些小问题
今天写了个脚本,要写进crontab做定时任务,每5分钟跑一遍.关于crontab的介绍呢,请大家移步www.baidu.com,在这里我就不仔细介绍了.可以搜索一下“每天一个Linux命令”系列文章 ...
- $_cookie的使用
设置并发送 cookie: <?php $value = "my cookie value"; // 发送一个简单的 cookie setcookie("TestC ...
- Spring(十五)之声明式事务
声明式事务管理方法允许你在配置的帮助下而不是源代码硬编程来管理事务.这意味着你可以将事务管理从事务代码中隔离出来.你可以只使用注释或基于配置的 XML 来管理事务. bean 配置会指定事务型方法.下 ...
- php is_callable()与method_exists()函数
总结就是 method_exists()检查方法是否存在 is_callable()是否存在并可在当前作用域是否可调用
- Kafka个人总结
Kafka 应对场景:消息持久化.吞吐量是第一要求.状态由客户端维护.必须是分布式的.Kafka 认为 broker 不应该阻塞生产者,高效的磁盘顺序读写能够和网络 IO 一样快,同时依赖现代 OS ...
- 百度地图中找不到BMap的解决
一般情况下是引用的问题,产生的原因大概有两种 1.不同架构的引用方式不同,引用js的方式不同导致 2.自身调用顺序有误 官方的引用方式是使用标签引入,示例 <script type=" ...
- C# 操作word 模板 值 替换
1.引用 aspose.words dll 2.word 使用doc 3.给word 模板中添加要替换位置的 书签 .引用 aspose.words dll .word 使用doc .给word ...
- 调试日志——基于stm32的智能声光报警器(三)
智能声光报警器基本功能调试完成. 1.通过拨码开关来设置LED闪烁的频率. 2.关门时喇叭不想,灯熄灭. 3.旁路模式时,灯处于闪烁状态,此时关门灯扔闪烁. 关于此次代码我觉得还是有可以优化的地方,电 ...
- C#串口通信及数据表格存储
1.开发环境 系统:win10 开发工具:Visual Studio 2017 2.界面设计 串口通信的界面大致如此,在此基础上添加项目所需的调试指令与数据存储功能,界面排布方面可参考其他教程. 3. ...
- IAR升级之后,编译stm32官方工程报错的解决办法
IAR升级之后,打开stm32官方例程,编译时提示如下错误: Error[Pe147]: declaration is incompatible with "__nounwind __int ...