源码编译NGINX
Posted axiao-47
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码编译NGINX相关的知识,希望对你有一定的参考价值。
一、下载nginx
[root@Alen ~]# cd /opt/ && ls [root@Alen /opt/]# wget http://nginx.org/download/nginx-1.16.1.tar.gz --2020-02-09 15:13:30-- http://nginx.org/download/nginx-1.16.1.tar.gz 正在解析主机 nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3 正在连接 nginx.org (nginx.org)|62.210.92.35|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:1032630 (1008K) [application/octet-stream] 正在保存至: “nginx-1.16.1.tar.gz” 100%[=============================================================>] 1,032,630 2.78KB/s 用时 9m 23s 2020-02-09 15:22:54 (1.79 KB/s) - 已保存 “nginx-1.16.1.tar.gz” [1032630/1032630]) [root@Alen opt]# ls nginx-1.16.1.tar.gz
二、安装依赖包
[root@Alen opt]# yum -y install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel ****** 完毕!
三、解压
[root@Alen opt]# tar -xzf nginx-1.16.1.tar.gz [root@Alen opt]# ls nginx-1.16.1 nginx-1.16.1.tar.gz [root@Alen opt]# cd nginx-1.16.1/ [root@Alen nginx-1.16.1]# ll 总用量 756 drwxr-xr-x. 6 1001 1001 4096 2月 9 15:28 auto # 提供了4个子目录 -rw-r--r--. 1 1001 1001 296463 8月 13 20:51 CHANGES # 对nginx版本中有哪些特性和bugfix进行说明 -rw-r--r--. 1 1001 1001 452171 8月 13 20:51 CHANGES.ru # 俄罗斯语言版本的CHANGES drwxr-xr-x. 2 1001 1001 4096 2月 9 15:28 conf # 示例文件,安装好之后会将此目录中的示例文件拷贝到安装目录以方便配置 -rwxr-xr-x. 1 1001 1001 2502 8月 13 20:51 configure # 用来生成中间文件,执行编译前的一个必备动作 drwxr-xr-x. 4 1001 1001 68 2月 9 15:28 contrib # 提供了两个pa脚本,和vim的工具 drwxr-xr-x. 2 1001 1001 38 2月 9 15:28 html # 提供了两个标准的html文件 -rw-r--r--. 1 1001 1001 1397 8月 13 20:51 LICENSE drwxr-xr-x. 2 1001 1001 20 2月 9 15:28 man # Linux对nginx的帮助文件,这里可以看到nginx的基本帮助和配置 -rw-r--r--. 1 1001 1001 49 8月 13 20:51 README drwxr-xr-x. 9 1001 1001 84 2月 9 15:28 src # 框架都在此目录的代码中
四、配置,使vim打开nginx配置文件时语法高亮
[root@Alen nginx-1.16.1]# mkdir /root/.vim [root@Alen nginx-1.16.1]# cp -r contrib/vim/* /root/.vim/
五、查看NGINX的html目录结构
[root@Alen nginx-1.16.1]# tree html/ html/ ├── 50x.html # 发生50X错误时,可以重定向到此文件 └── index.html # 默认的NGINX欢迎界面 0 directories, 2 files
六、查看configure支持哪些参数,使用more分页查看,空格翻页,q退出
[root@Alen nginx-1.16.1]# ./configure --help | more
七、配置:使用默认参数指定nginx的安装目录,配置成功后,nginx的配置特性以及nginx的执行木等信息都会列在最下方
[root@Alen nginx-1.16.1]# mkdir /opt/nginx [root@Alen nginx-1.16.1]# ./configure --prefix=/opt/nginx
八、执行完configure命令后nginx-1.16.1目录下会多出以下两个内容
-rw-r--r-- 1 root root 356 2月 9 16:06 Makefile drwxr-xr-x 3 root root 174 2月 9 16:06 objs # 生成的中间文件 [root@Alen nginx-1.16.1]# cd objs/ [root@Alen objs]# ll 总用量 80 -rw-r--r--. 1 root root 17628 2月 9 16:07 autoconf.err -rw-r--r--. 1 root root 39886 2月 9 16:07 Makefile -rw-r--r--. 1 root root 6791 2月 9 16:07 ngx_auto_config.h -rw-r--r--. 1 root root 657 2月 9 16:07 ngx_auto_headers.h -rw-r--r--. 1 root root 5856 2月 9 16:07 ngx_modules.c # 决定了接下来编译时,有哪些模块会被编译进nginx drwxr-xr-x. 9 root root 84 2月 9 16:07 src # C语言编译时生成的中间文件都会放在此目录
九、编译
[root@Alen objs]# cd .. [root@Alen nginx-1.16.1]# make # 编译完成后,objs目录下会生成大量中间文件,主要为以下三部分 # 如果需要对nginx进行版本升级,则需要从objs中将nginx执行文件拷贝到nginx的安装目录中 # 如果使用了动态模块,那么动态模块编译会生成so动态文件,届时也会放在objs目录下 -rwxr-xr-x. 1 root root 3825645 2月 9 16:25 nginx -rw-r--r--. 1 root root 5317 2月 9 16:25 nginx.8 -rw-r--r--. 1 root root 32312 2月 9 16:25 ngx_modules.o
十、make install 安装,只有首次安装时可使用此命令
# 安装完成后,前往prefix指定的目录可以看到以下结构 [root@Alen nginx-1.16.1]# cd ../nginx [root@Alen nginx]# ll 总用量 4 drwxr-xr-x. 2 root root 4096 2月 9 16:42 conf # 决定nginx功能的配置文件在conf下 drwxr-xr-x. 2 root root 38 2月 9 16:42 html drwxr-xr-x. 2 root root 6 2月 9 16:42 logs # access.log和error.log在logs下 drwxr-xr-x. 2 root root 18 2月 9 16:42 sbin # 最主要的nginx二进制文件在sbin下
以上是关于源码编译NGINX的主要内容,如果未能解决你的问题,请参考以下文章