买了极客时间上陶辉的Nginx核心知识100讲,正在学。链接
Nginx 4个组成部分
- 二进制可执行文件
- nginx.conf 配置文件
- access.log
- error.log
nginx 版本
- Mainline主干版本。版本号奇数,功能多,但是不一定稳定。
- Stable 稳定版本。版本号偶数,
开源版本:nginx.org
商业版:nginx.com
OpenResty:Nginx + 内置Lua库 + 第三方模块+大多数依赖项
编译自己的nginx,因为模块要求不一样。
-
下载nginx
nginx/download
-
介绍各个目录
auto 主要3个子目录。cc用于编译。lib包含的库。os判断操作系统相关。其他辅助config脚本执行的时候判断nginx支持哪些模块,有哪些能用。
changes变更记录。.ru俄文版的changes。
conf,配置文件示例,到时候可以copy到安装目录去。
configure文件用于生成中间文件,执行编译前的必备动作。
contrib。把里面的vim文件夹内容copy到~/.vim目录下面,能让编辑conf文件有缩进,字体等格式。
man文件是帮助文件,估计就是manual的意思。里面有个nginx.8 文件,是一个manual文件,用man nginx.8打开。
src源代码。
-
Configure(linux惯例)
./Configure --help | more .参数分3类。
- 指定一些路径,比如log的路径等。
- 使用or不使用哪些模块。
- 编译时候的特殊参数
- configure时可能少
pure-devel
和zlib-devel
,通过yum安装一下即可 - ./configure --prefix=/home/nginx/ 会写到nginx二进制文件中,热部署的时候需要一致。
-
中间文件介绍
configure完成后在objs生成文件。重点是nix_modules.c文件,里面有ngx_modules数组,包含所有的模块。还有nginx二进制文件。
-
编译
make编译。在objs中生成。
-
安装
make install 。install到上面configure的目录中。