一、为什么要手动编译Nginx
Nginx安装除了编译以外,我们还可以直接用操作系统上自带的工具比如说yum、apt-get直接安装。
但是直接安装Nginx二进制文件有一个问题:Nginx二进制文件会把模块直接编译进来,Nginx官方模块并不是每一个都会默认开启,如果想要添加第三方Nginx模块,必须通过编译Nginx才能把第三方强大生态圈中的功能添加到Nginx中。
二、下载Nginx
1、官网
http://nginx.org/
找到右下角的download:
我们复制链接地址,到linux服务器中。
2、下载至linux服务器
# 下载
wget http://nginx.org/download/nginx-1.24.0.tar.gz
# 解压
tar -zxvf nginx-1.24.0.tar.gz
# 进入到源码目录
cd nginx-1.24.0/
3、源码目录分析
- auto目录:主要包含用于编译的核心功能、lib库以及辅助config配置文件的核心功能。
- CHANGES文件:包含nginx每一个版本中提供的特性及bug-fix。
- CHANGES.ru文件:俄罗斯版本的change文件。
- conf目录:该目录中包含示例配置文件。
- configure脚本:该脚本用于生成中间文件,执行编译前的一个必备动作。
- contrib目录:提供vim工具,使用vim可以高亮显示conf配置文件(需要手动拷贝:
cp -r contrib/vim/* ~/.vim
) - html目录:提供了两个html文件,一个是首页一个是50x错误。
- man目录:帮助文件。
- src目录:源代码。
4、编译安装
# 查看configure 支持的参数,其中包含指定某些路径、开启某些模块、编译中特殊参数
#./configure --help | more# 安装nginx必备依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 进行编译,指定安装目录,没什么报错就是编译成功
./configure --prefix=/nginx
configure命令执行完之后,会生成一些中间文件,存放在objs目录下:
其中,ngx_modules.c文件中,决定了我们在执行编译时,哪些模块会编译进nginx。
# 在nginx根目录进行编译(configure所在的目录)
make
此时又生成了大量的中间文件,以及执行的nginx二进制文件(在objs目录下):
# 安装(configure所在的目录)
make install
5、安装目录
- conf目录包含配置文件
- sbin目录包含二进制可执行文件
- logs目录包含日志文件
- html包含html文件
三、启动
1、启动
# 进入到sbin目录
cd /nginx/sbin
# 启动
./nginx
2、访问一下80端口
打开默认的index页面!