Linux Nginx实战之初识Nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Nginx实战之初识Nginx相关的知识,希望对你有一定的参考价值。

1.nginx是什么?

nginx是一款高性能的HTTP和反向代理服务器软件,第一个开源版本诞生于2004年,虽然诞生较晚但经过十多年的发展,已经成为非常流行的web服务器软件,下图是w3techs公布的全球网站服务器软件统计报告
技术分享图片

2.Nginx为什么流行?

首先,nginx的特性迎合了市场的发展趋势,近几年来,随着硬件成本的降低,个人电脑和移动设备得到了普及,高并发的流量成为网站必须应对的问题。而Nginx就是为性能而生,从发布以来一直侧重于高性能,高并发,低CPU内存消耗;在功能方面:负载均衡,反向代理,访问控制,热部署,高扩展性等特性又十分适合现代的网络架构。更可贵的是配置简单文档丰富,大大降低了学习的门槛。

3.Nginx和Apache 有什么共同之处

    1. 同是HTTP服务器软件,都采用模块化结构设计
    1. 支持通用语言接口,如php,Python等
    1. 支持正向代理和反向代理
      3.4. 支持虚拟主机及ssl加密传输
      3.5. 支持缓存及压缩传输
      3.6. 支持URL重写
      3.7. 模块多,扩展性强
      3.8. 多平台支持

4.Nginx的优势

4.1 轻量级 安装文件小 运行时CPU内存使用率低
4.2 性能强 支持多核,处理静态文件效率高,内核采用的poll模型最大可以支持50K并发连接
4.3 支持热部署 同时启动速度快,可以在不间断服务的情况下对软件和配置进行升级
4.4 负载均衡 支持容错和健康检查
4.5 代理功能强大 支持无缓存的反向代理,同时支持IMAP/POP3/SMTP的代理

5.Nginx的劣势

5.1 相比Apache 模块要少一些,常用模块都有了,而且支持LUA语言扩展功能
5.2 对动态请求支持不如apache
5.3 Windows 版本功能有限 ,受限于windows的特性,支持最好的还是*unix系统

Nginx的组成

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的动态加载模块方便。

Nginx 使用的架构

LNMP

技术分享图片

web历史上最流行最经典的环境是LAMP(Linux + Apache + mysql + PHP),至今仍有大量网站采用此架构,Apache默认配置在未优化的情况下比较占用CPU和内存。借助于Nginx的轻量和高性能,LNMP架构只是将LAMP环境中的Apache换成Nginx,于是另一经典LNMP架构就诞生了。LNMP在服务器硬件配置相同时,相对于LAMP会使用更少的CPU和内存,是小型网站,低配服务器,和VPS的福音。

当然,Nginx还有其他的架构,但在后续的文章中,我只会使用到这个结构,所以其他的暂不列举说明。

以上是关于Linux Nginx实战之初识Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu Nginx实战之LNMP的安装

初识nginx之什么是nginx

初识linux安装nginx

Linux下玩转nginx系列——初识nginx及其使用入门

Linux下玩转nginx系列——初识nginx及其使用入门

初识Nginx配置文件以及基本命令