针对 Unix 环境
从 Nginx 官网 出下载想要编译版本的 Nginx,Nginx 官方提供三个版本:
Mainline version
主线版本,功能较新,稳定性较 Stable version 稍差,建议学习使用该版本,实际生产使用 Stable version。
Stable version
稳定版本
Legacy versions
历史版本
wget http://nginx.org/download/nginx-1.17.4.tar.gz
tar -zxvf nginx-1.17.4.tar.gz
cd nginx-1.17.4
编译时的依赖库以及针对操作系统特性选择库
英文版 Nginx 各版本变更说明
俄文版 Nginx 各版本变更说明(Nginx 作者是俄罗斯人)
配置文件目录
编译配置,编译前生成中间文件方便编译
主要有编译路径配置、某些功能开关及模块配置
--prefix
设置服务器存放地址,也是其他未配置路径的目录的默认根目录
--XXX-path
代表设置 XXX 目录的地址
--with-XXX_module
代表启用某些模块
--without-XX_module
代表禁用某些模块,这些模块时 Nginx 默认会编译的模块
还有一些其他参数可以参考可以参考 Ngxin 官方文档
vim 提示插件以及一些提升使用 Nginx 效率的工具脚本
配置 vim 提示
cp -r contrib/vim ~/.vim
针对不同层次结构以及不同关键字颜色区别会更明显
存放 index.html(Nginx 默认欢迎页)和 50x.html(Nginx 默认错误页)
index.html:
50x.html:
许可证信息
Nginx 为 linux 提供的帮助文件
可以使用命令查看(与编译后使用 nginx -h
相比内容更丰富)
man man/nginx.8
自述文件
源码
首先需要使用 configure
进行配置,一般只设置 --prefix
即可:
./configure --prefix=/home/sanchan/nginx
配置会输出配置简要说明:
Configuration summary
using system PCRE library
OpenSSL library is not used
using system zlib library
nginx path prefix: "/home/sanchan/nginx"
nginx binary file: "/home/sanchan/nginx/sbin/nginx"
nginx modules path: "/home/sanchan/nginx/modules"
nginx configuration prefix: "/home/sanchan/nginx/conf"
nginx configuration file: "/home/sanchan/nginx/conf/nginx.conf"
nginx pid file: "/home/sanchan/nginx/logs/nginx.pid"
nginx error log file: "/home/sanchan/nginx/logs/error.log"
nginx http access log file: "/home/sanchan/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
配置生成的中间文件会放置到 objs目录下,有兴趣的小伙伴可以看下。
然后就可以进行编译了:
make
编译会在 objs 目录下生产 nginx 、nginx.8 及 ngx_modules.o,如果是升级 Nginx 可以将这些文件替换旧文件,如果是全新安装则执行:
make install
这样在之前配置的路径 /home/sanchan/nginx
中就可以看到 Nginx 相关文件了。
sbin 为 Nginx 二进制执行文件目录
logs 为 Nginx 日志目录
conf 及 html 与下载的 Nginx 源码中目录是一致的
以上就完成了 Nginx 的编译工作