文章目录

  • 一、为什么要手动编译Nginx
  • 二、下载Nginx
  • 1、官网
  • 2、下载至linux服务器
  • 3、源码目录分析
  • 4、编译安装
  • 5、安装目录
  • 三、启动
  • 1、启动
  • 2、访问一下80端口


一、为什么要手动编译Nginx

Nginx安装除了编译以外,我们还可以直接用操作系统上自带的工具比如说yum、apt-get直接安装。

但是直接安装Nginx二进制文件有一个问题:Nginx二进制文件会把模块直接编译进来,Nginx官方模块并不是每一个都会默认开启,如果想要添加第三方Nginx模块,必须通过编译Nginx才能把第三方强大生态圈中的功能添加到Nginx中。

二、下载Nginx

1、官网

http://nginx.org/

找到右下角的download:

Nginx手动编译、安装超超详解_nginx


Nginx手动编译、安装超超详解_Nginx_02


我们复制链接地址,到linux服务器中。

Nginx手动编译、安装超超详解_vim_03

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、源码目录分析

Nginx手动编译、安装超超详解_Nginx_04

  • 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

Nginx手动编译、安装超超详解_运维_05


configure命令执行完之后,会生成一些中间文件,存放在objs目录下:

Nginx手动编译、安装超超详解_Nginx_06


其中,ngx_modules.c文件中,决定了我们在执行编译时,哪些模块会编译进nginx。

# 在nginx根目录进行编译(configure所在的目录)
make

此时又生成了大量的中间文件,以及执行的nginx二进制文件(在objs目录下):

Nginx手动编译、安装超超详解_nginx_07

# 安装(configure所在的目录)
make install

5、安装目录

Nginx手动编译、安装超超详解_vim_08

  • conf目录包含配置文件
  • sbin目录包含二进制可执行文件
  • logs目录包含日志文件
  • html包含html文件

三、启动

1、启动

# 进入到sbin目录
cd /nginx/sbin
# 启动
./nginx

2、访问一下80端口

打开默认的index页面!

Nginx手动编译、安装超超详解_nginx_09


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginx