0
点赞
收藏
分享

微信扫一扫

《深入理解Nginx模块开发》 学习笔记(一)

其生 2022-02-17 阅读 73
nginx

《深入理解Nginx模块开发》 学习笔记(一)

Nginx是什么

  • Nginx是由来自俄罗斯的Igor Sysoev 使用C语言开发并开源,而且赋予其最自由的2-clause BSD-like license 许可证;
  • Nginx是一个跨平台的Web服务器;
  • Nginx使用基于事件驱动的架构,保证并发处理百万级的TCP连接;
  • 高度模块化的设计和自由的许可证使得扩展Nginx功能的第三方模块层出不穷。

为什么选择Nginx

  • 相较于其他Web服务器,Nginx在高峰期可以更快的响应请求;
  • Nginx的设计极具扩展性,由多个不同功能、不同层次、不同类型且耦合度极低的模块组成,且嵌入在二进制文件中执行,具备优秀的性能;
  • Nginx的高可靠性,源于其核心框架代码的优秀设计、模块设计的简单性,官方提供的模块非常稳定、每个Worker进程相对独立,在出错时可由master进程快速拉起新的worker进程提供服务;
  • 低内存消耗
  • 单机支持10万以上的并发连接;
  • 热部署,master管理进程与worker进程的分离设计,支持不停服务就更新配置项、更换日志文件;
  • 最自由的BSD许可协议;

准备工作

操作系统

-Linux 2.6及以上版本 (支持epoll)

必备软件

(1)GCC编译器

sudo apt-get install build-essential
必需的编译工具

(2)PCRE库

sudo apt-get install libpcre3 libpcre3-dev
如果在配置文件nginx.conf使用正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx

(3)zlib库

sudo apt-get install zlib1g-dev
用于对HTTP的内容做gzip格式的压缩

(4)OpenSSL库

sudo apt-get install openssl libssl-dev
用于在更安全的SSL协议上传输HTTP

磁盘目录

  • Nginx源码存放目录
  • Nginx编译阶段产生的中间文件目录
  • 部署目录(/usr/local/nginx)
  • 日志文件存放目录

Linux内核参数的优化

默认的Linux内核参数考虑的时最通用的场景,不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数用于支持Nginx的高性能。

编译安装Nginx

configure详解

Nginx的命令行控制

举报

相关推荐

0 条评论