一.Nginx功能描述
2017-03-17 10:48
155 查看
一.Nginx是什么
nginx是一款高性能的HTTP和反向代理服务器软件.二.Nginx与Apache
1.相同点
同是HTTP服务器软件,都采用模块化结构设计支持通用语言接口,如PHP,Python等
支持正向代理和反向代理
支持虚拟主机及ssl加密传输
支持缓存及压缩传输
支持URL重写
模块多,扩展性强
多平台支持
2.Nginx的优势
轻量级 安装文件小 运行时CPU内存使用率低性能强 支持多核,处理静态文件效率高,内核采用的poll模型最大可以支持50K并发连接
支持热部署 同时启动速度快,可以在不间断服务的情况下对软件和配置进行升级
负载均衡 支持容错和健康检查
代理功能强大 支持无缓存的反向代理,同时支持IMAP/POP3/SMTP的代理
3.Nginx的劣势
相比Apache 模块要少一些,常用模块都有了,而且支持LUA语言扩展功能对动态请求支持不如apache
Windows 版本功能有限 ,受限于windows的特性,支持最好的还是*unix系统
三.Nginx工作原理
Nginx由内核和一系列模块组成,内核提供web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互。Nginx的各种功能和操作都由模块来实现。Nginx的模块从结构上分为核心模块、基础模块和第三方模块。核心模块: HTTP模块、EVENT模块和MAIL模块
基础模块: HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
第三方模块: HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块及用户自己开发的模块
这样的设计使Nginx方便开发和扩展,也正因此才使得Nginx功能如此强大。Nginx的模块默认编译进nginx中,如果需要增加或删除模块,需要重新编译Nginx,这一点不如Apache的动态加载模块方便。如果有需要动态加载模块,可以使用由淘宝网发起的web服务器Tengine,在nginx的基础上增加了很多高级特性,完全兼容Nginx,已被国内很多网站采用。
四.Nginx的常用架构简介
a.小巧的LNMP
web历史上最流行最经典的环境是LAMP(Linux + Apache + Mysql + PHP),至今仍有大量网站采用此架构,Apache默认配置在未优化的情况下比较占用CPU和内存。借助于Nginx的轻量和高性能,LNMP架构只是将LAMP环境中的Apache换成Nginx,于是另一经典LNMP架构就诞生了。LNMP在服务器硬件配置相同时,想对于LAMP会使用更少的CPU和内存,是小型网站,低配服务器,和VPS的福音。b.互补的LNAMP
LNAMP是一种互补型的架构.Nginx的负载均衡和反向代理配置灵活,并发能力强,处理静态资源性能强,这些特性十分适合在前端调度。
缺点是处理动态资源差一些,这正是Apache的强项,所以动态资源交给Apache处理。
此架构充分利用了Nginx和Apache的长处,弥补各自的不足,兼顾动静态资源的同时又方便了扩展。
缺点是配置复杂对服务器硬件配置要求高。
c.Web调度员Nginx
当web应用发展到一定程度时,单台服务器不足以支撑业务的正常运行,为增大吞吐量往往会使用多台服务器一起提供服务,如何充分利用多台服务器的资源,就需要一个’调度员‘,这个调度员要求能高效的接收并分发请求,知道后端的服务器健康状态,要能方便的扩展和移除,这就是Nginx又一常见应用架构,此架构充分利用了Nginx的反向代理和负载均衡的优势,Nginx本身不提供web服务,而是在前端接受web请求并分发到后端服务器处理,后端服务器可以是Apache,tomcat,IIS等。相关文章推荐
- visio概念功能描述
- 题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能
- 关于数据库自我描述功能的构思
- linux下文件功能描述
- Android中各种JAVA包的功能描述
- ButterKnife的功能描述
- SQL Server2005的系统数据库及其功能描述
- 常用ARM指令及功能描述
- Linux电源管理(11)_Runtime PM之功能描述
- 请描述osi七层模型,并简要概括各层功能
- BarTender具体功能描述
- CycloneII之EDA及学术开发功能描述
- CRUD周期描述持久数据库的主要功能。“C”表示“创建”、“R”表示“读取”、“U”表示“
- Xmanager关键功能描述
- 证券市场的特征,结构和基本功能描述
- Android中常见功能包描述(转)
- Linux电源管理(11)_Runtime PM之功能描述
- Cocos2d-x场景功能描述的生命周期
- Cognos学习之二:详细的组件以及对应的功能描述
- SQL Server 2000之日志传送功能 - 描述(1)