Nginx: enginx X

国内有两个分支版本:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
Tengine
Registry

 nginx研发时调用libevent库中的epoll函数:

libevent: 高性能的网络服务程序库
   epoll(): 基于事件驱动的开发库文件

 Nginx特性:

模块化设计、较好的扩展性
高可靠
  master --> worker
低内存消耗
  10000个keep-alive模式下的connection,仅需要2.5MB的内存
支持热部署
  不停机而更新配置文件、日志文件滚蛋、升级程序版本
支持事件驱动、AIO、mmap

基本功能:

静态资源的web服务器,能缓存打开的文件描述符
http、smtp、pop3协议的反向代理服务器
缓存加速、负载均衡
支持FastCGI(fpm,LNMP),uWSGI(Python)等
模块化(非DSO机制)、过滤器zip、SSI及图像的大小调整
支持SSL

扩展功能:

基于名称和IP的虚拟主机
支持keepalive
支持平滑升级
定制访问日志、支持使用日志缓存区提供日志存储性能
支持url rewrite
支持路径别名
支持基于IP及用户的访问控制
支持速率限制,支持并发数限制

 Nginx的基本架构

 linux服务基础之nginx简单介绍 随笔

一个master进程,生成一个或多个worker进程
事件驱动:epoll(边缘触发)(linux上实现的事件驱动)、kqueue(BSD上实现的事件驱动)、/dev/poll
  复用器:select,poll,rt signal
支持sendfile, sendfile64
支持AIO
支持mmap

 nginx的工作模式:非阻塞、事件驱动、由一个master进程生成多个worker线程,每个worker响应n个请求

模块类型:

核心模块
Standard HTTP modules
Optional HTTP modules
Mail modules
3rd party modules

 安装方法:

源码:编译安装
制作好的程序包: rpm包

nginx编译安装可参考另一篇博文:https://www.cnblogs.com/ckh2014/p/10848623.html

nginx基础配置:

 配置文件: /etc/nginx/nginx.conf

# vim /etc/nginx/nginx.conf
main配置段:全局配置段
events: 定义event模型工作特性
http:{
} : 定义http协议相关的配置

配置指令:要以分号结尾,语法格式:

directive value1 [value2...]

 支持使用变量:

  内置便利:
      模块会提供内建变量定义
  自定义变量:
      set var_name value

 主配置段的指令:

用于调试、定位问题
正常运行必备的配置
优化性能的配置
事件相关的配置

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄