Linux----------nginx基础

Posted wangchengshi

tags:

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

一、nginx简介

nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

nginx由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。

第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

nginx的官网:

1.1 nginx的特性:

nginx的特性:

  • 模块化设计,较好的扩展性
  • 外围支持好:文档全,二次开发和模块较多
  • 支持热部署:不停机更新配置文件,升级版本,更换日志文件
  • 低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需要2.5M内存
  • 支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化
  • 配置通俗易懂
  • 稳定性高:用于反向代理,宕机的概率微乎其微
  • 在高连接并发的情况下,nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应
  • 使用epoll and kqueue作为开发模型
  • nginx采用C进行编写,不论系统资源开销还是CPU使用效率都比Perlbal要好很多

1.2 nginx的基本功能

nginx的基本功能:

  • 静态资源的web服务器
  • http协议反向代理服务器
  • pop3/imap4协议反向代理服务器
  • FastCGI(LNMP),uWSGI(python)等协议
  • 模块化(非DSO),如zip,SSL模块

1.3 web服务相关的功能:

  • 虚拟主机(server)
  • 支持 keep-alive 和管道连接
  • 访问日志(支持基于日志缓冲提高其性能)
  • url rewirte
  • 路径别名
  • 基于IP及用户的访问控制
  • 支持速率限制及并发数限制
  • 重新配置和在线升级而无须中断客户的工作进程
  • Memcached 的 GET 接口

1.4 nginx的优点

nginx的优点:

  • 高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数
  • 内存消耗少:在3万并发连接下,开启的10个nginx进程才消耗150M内存(15M*10=150M)
  • 配置文件非常简单:风格跟程序一样通俗易懂
  • 成本低廉:nginx为开源软件,可以免费使用。
  • 支持Rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组-
  • 内置的健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问
  • 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头
  • 稳定性高:用于反向代理,宕机的概率微乎其微
  • 模块化设计:模块可以动态编译
  • 外围支持好:文档全,二次开发和模块较多
  • 支持热部署:可以不停机重载配置文件
  • 支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化

二、nginx的组成

nginx由内核和模块组成。其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

2.1 nginx的程序结构

nginx的程序结构: master/worker结构

一个master进程:负责加载和分析配置文件、管理worker进程、平滑升级
一个或多个worker进程:处理并响应用户请求
缓存相关的进程:
cache loader:载入缓存对象
cache manager:管理缓存对象

2.2 nginx模块

nginx由内核和模块组成。其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

ngiib

以上是关于Linux----------nginx基础的主要内容,如果未能解决你的问题,请参考以下文章

LNMT架构部署:Linux+Nginx+Mysql+Tomcat(负载均衡,动静分离)

实现基于lnmp的电子商务网站

Linux----------nginx基础

Linux ❀ Nginx基础解释与服务部署搭建

Linux:nginx基础

nginx 基础