文章目录
一、开始nginx
nginx 源码目录
mdkir /usr/local/nginx
编译的中间文件存放目录
执行congfig与make命令执行后生成的目标文件和最终链接成功的二进制文件,一般在nginx源码目录下,名为objs
部署目录
usr 是系统程序目录
usr/local 本地程序目录
mdkir /usr/local/nginx
日志文件存放目录
linux内核参数优化
对参数优化,适应nginx的高并发的特点
略
编译安装
获取源码, 编译安装
nginx官网 http://nginx.org/en/download.html
nginx-1.16.0 是2019年7月的稳定版本
cd /usr/local/src
curl -O http://nginx.org/download/nginx-1.16.0.tar.gz
tar -xzvf nginx-1.16.0.tar.gz
# ./configure 检查必要软件的安装,根据配置参数,系统配置生成编译所需的makefile文件
./configure
# 根据makefile 编译
make
# 根据 confiure 执行时的参数将nginx部署到指定目录
make install
./configure --help
查看 配置参数
-
路径相关的参数 有很多
–prefix=PATH 安装部署目录默认为/usr/local/nginx 等等 -
编译相关的参数
–with-cc=path c编译器 等等 -
依赖软件参数
–with-pcre 正则库
–with-openssl=DIR ssl
–with-MD5 nginx 自身实现了 md5
–with-zlib zlib源码库
模块相关的参数
除了少量的核心代码,Nginx完全是有各种功能模块组成的。这些模块会根据配置参数决定自己的行为,因此正确的使用各个模块非常关键。在configure 的参数中,我们把他们分为5大类
- 事件模块
- 默认即编译进入nginx的HTTP模块
- 默认不会编译进入nginx的HTTP模块
- 邮件服务器相关的mail模块
- 其他模块
./configure 脚本 内容
- 初始化后续编译时放置结果,日志等的文件
- 分析source源码,以便后续构造makefile文件
- 检查os平台是否支持编译
- 检查编译器 如gcc是否安装,gcc版本
- 根据os类型,定义特殊的操作系统函数(如系统调用等),并检查是否会能够使用
- 核心:生成核心的ngx_modules数组,作用是运行期间,声明请求会经过那些模块的处理(次序有关)
也说明了nginx的特性,编译好n个模块,请求依次通过遮羞模块处理
。 - 检查第三方库是否存在
- 处理nginx安装后的一系列路径信息,如nginx需要的一系列lib文件路径
- 生成makefile文件
- 编译make
- 将必要的文件 复制到make intall 需要的安装路径
- 设置运行程序的用户
- 打印运行结果