ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx极客时间:编译出适合自己的Nginx

2021-02-15 23:34:12  阅读:175  来源: 互联网

标签:文件 极客 编译 -- module Nginx nginx ngx


编译Nginx主要分为以下六个部分:

在这里插入图片描述

1. 下载Nginx:

从Nginx官方网站中下载压缩包即可。

也可使用 wget 命令的方式进行下载:

Unix > wget http://nginx.org/download/nginx-1.14.0.tar.gz

wget 命令:

wget是Linux中的一个下载文件的工具,支持通过HTTP、HTTPS、FTP三个最常见的 TCP/IP协议下载。

2. 介绍各目录:

解压下载的Nginx压缩包后,在Nginx的目录中可以看到主要包含以下几个部分:

auto			# auto文件夹中主要有4个目录:cc、lib、os、types,auto目录主要是为了辅助configure执行时Nginx要支持哪些模块、当前系统支持哪些特性来供Nginx使用;

GHNAGE			# 当前版本相较于前面版本有哪些变化,新增支持哪些特性(Feature)和修复了哪些bug(Bugfix)
CHANGE.ru		# 俄语版的CHANGE文件

conf			# 实例文件。在Nginx安装好后,会把configure的实例文件拷贝到conf文件中,方便运维使用

configure		# 配置脚本,用来生成中间文件,执行编译前的必备动作

contrib			# Perl脚本,使Nginx的语法在vim中显示

html			# 包括 50x.html, index.html 两个html文件

LICENSE

man				# Nginx的帮助文件

README

src				# Nginx的源代码(core, event, http, mail, misc, os, stream)

tree 命令:

Linux tree 命令用于以树状图列出目录的内容。
执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

3. Configure:

按照Unix的惯例,需要先执行 configure 文件,然后再编译。

configure 命令介绍:

./configure --help | more

//第一类参数:指定Nginx的安装路径:
--prefix=PATH			# set installation prefix
--sbin-path=PATH
--modules-path=PATH
--conf-path=PATH

//第二类参数:确定Nginx要使用哪些模块、不使用哪些模块:
//"--with" 开头的模块是默认 不 编译进Nginx的模块,使用with可指定其加入Nginx
//"--without" 开头的模块是默认 编译进Nginx的模块,使用without可指定其不加入Nginx
--with-select_module
--with-http_ssl_module

--without-http_gzip_module
--without-http_charset_module

//第三类参数:一些特殊选项:
--with-cc=PATH				# 指定C编译器路径
--with-cpp=PATH				# 指定CPP编译器路径
--with-ld-opt=OPTIONS



使用默认方式安装:

./configure --prefix=/home/nginx

more 命令:

Linux more 命令类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按 b 键 就会往回(back)一页显示,而且还有搜索字符串的功能(与 vi 类似)。

4. 中间文件介绍:

objs目录:
./configure 执行后会生成一些中间文件,这些中间文件会放在 objs 目录中(与 auto、configure 等同级的目录)。
objs 目录中最重要的文件是 ngx_module.c,它决定了在后面编译时有哪些模块会被编译进Nginx。
其中是一个数组,包含了所有要编译进Nginx的模块。

ngx_module.c 内容:

#include <ngx_config.h>
#include <ngx_core.h>

extern  ngx_module_t  ngx_core_module;
extern  ngx_module_t  ngx_errorlog_module;
...


ngx_module_t *ngx_modules[] = {
	&ngx_core_module,
	&ngx_errorlog_module,
	...
};

char *ngx_module_names[] = {
	"ngx_core_module",
	"ngx_errlog_module",
	...
};

5. 编译:

执行 make 编译。


编译后,会生成大量的中间文件(例如 .o 文件) 和 最后的可执行二进制文件(nginx)。

objs 目录中可以看到 可执行二进制文件 nginx;
objs/src 目录下可以看到C语言编译时生成的所有中间文件(.o 文件)。

6. 安装:

执行 make install 安装。


(首次安装时可以通过执行 make install 安装)

随后,在 --prefix 指定的目录中就可以看到 安装好后的 Nginx。

其中,
最主要的nginx可执行二进制文件就在 sbin 目录下;
决定 nginx功能的配置文件 在 conf 目录下;
access.log 和 error.log 将会保存在 logs 目录下。

root / > cd /home/nginx/

root nginx > ls 
conf  html  logs  sbin

root nginx > tree sbin
sbin/
|—— ngxin

root nginx > tree html
html/
|—— 50x.html
|—— index.html

root nginx > tree conf
conf/
|—— fastcgi.conf
|—— mime.types
|—— nginx.conf
...

标签:文件,极客,编译,--,module,Nginx,nginx,ngx
来源: https://blog.csdn.net/ArtAndLife/article/details/113819592

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有