Nginx源码目录介绍

本文首先介绍Nginx几大流派(分支),然后简述Nginx核心组成部分,最后介绍在编译安装时的重要参数和核心目录。

1.Nignx几大分支

1.开源版nginx.org

2.商业版:nginx.com

3.阿里巴巴的 Tengine

4.OpenResty:分为开源和商业版

   首先俄罗斯人开发出了Nignx,最后发展为开源版本Nginx和商业版Nginx,有点类似Centos和RedHat。后来张玉春在Nginx基础上,扩展开发形成OpenResty,也成为一个很重要的分支。阿里巴巴最后在Nginx基础上开发了自己的Tengine。 三者用法几乎一致,而且底层都是基于最开始的Nginx核心模块,并且相互之间的一些模块可以互相使用。

2.Nginx组成部分:

Nginx就像一辆高性能的汽车,Nginx二进制可执行文件是发动机(可更换,即热部署),Nginx.conf配置文件就是驾驶舱,access.log就是行车记录仪,而error.log便是黑匣子。

在这里插入图片描述

3.编译安装Nginx

使用编译源码方式安装。这里不推荐其他安装方式。源码安装一方面可以获取最新的Nginx,另一方面可以方便灵活的编译不同模块到Nginx,在生产环境可能需要经常热部署升级等,这些都必须是编译源码安装。

这里我仅以Centos7为例演示安装Nginx:

  • 第一步:在官网下载Nginx源码 ,

    Nginx官网提供了三个类型的版本
    Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
    Stable version:最新稳定版,生产环境上建议使用的版本
    Legacy versions:遗留的老版本的稳定版

sudo wget http://nginx.org/download/nginx-1.16.0.tar.gz
  • 第二步:安装必要的一些类库和软件支持(如果已装,可跳过)
#1.安装gcc g++开发类库是否装好
ububtu平台编译环境可以使用以下指令
apt-get install build-essential
apt-get install libtool

centos平台编译环境使用如下指令
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
#2.正则表达相关PCRE
sudo apt-get install libpcre3 libpcre3-dev 

centos:
yum install -y pcre pcre-devel

#3.安装openssl
ubuntu下:
apt-get install openssl
apt-get install libssl-dev

centos下:
yum -y install openssl openssl-devel

#4.安装zlib库 
sudo wget 
https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz

tar -zxf zlib-12.11.tar.gz
cd zlib-1.2.11
./configure  
make 
make install
  • 第三步:解压并进入解压目录
sudo tar -zxf nginx-1.16.0.tar.gz
cd cd nginx-1.16.0
  • 第四步:编译安装(老三步)
./configure --prefix=/home/zx/nginx 
make
make install
  • 第五步:启动和停止Nginx服务
sudo ./nginx -c /usr/local/src/nginx/conf/nginx.conf  //启动
sudo /usr/local/src/nginx/sbin/nginx -s reload //平滑重启

./nginx -s stop #立即停止服务
./nginx -s quit #优雅的停止服务
./nginx -s reload #重载配置文件
./nginx -s reopen #重新开始记录日志文件

停止:
ps -ef|grep nginx
kill -QUIT 2072 //停止

kill -TERM 2132
kill -9 nginx //强制停止

重启:
kill -HUP 进程号
编译参数说明

第四步中 --prefix 可以指定安装目录,如果不指定该参数默认是/usr/local/nginx 目录。

通过下面命令可以查看更多可选编译参数:

./configure --help | more

这些参数主要分为三类:

  • 1.指定一些目录

    比如:–prefix 可以指定安装目录。

  • 2.指定编译时使用或者排除那些模块:

    其中–with开头的说明默认不会编译进nginx如果需要该模块,需要加上该参数去编译进Nginx二进制文件,–without开头则说明默认会编译进去,如果不需要,需要指定进行移除。

  • 3.指定一些特殊参数:比如要打印一些debug日志等

编译中间文件介绍:

编译产生的中间文件会在objs目录中。其中最重要的是ngx_modules.c 这里边会决定nginx会将那些模块进行安装。另外nginx的运行二进制文件也会在objs中,如果我们是做nginx升级,我们不能运行make install ,而需要将nginx文件拷贝到nginx目录中覆盖原有的二进制文件。objs中的src是c语言编译产生的中间文件。

安装目录介绍:

执行make install便会安装nginx到指定目录。安装目录中的nginx.conf配置文件就是从源码的conf中拷贝的,sbin目录中则是核心的二进制执行文件。

4.源码目录介绍

上面编译安装的第三步解压后目录如下:

drwxr-xr-x 6 1001 1001    326 Aug 26 20:14 auto
-rw-r--r-- 1 1001 1001 296223 Apr 23 21:13 CHANGES
-rw-r--r-- 1 1001 1001 451813 Apr 23 21:13 CHANGES.ru
drwxr-xr-x 2 1001 1001    168 Aug 26 20:14 conf
-rwxr-xr-x 1 1001 1001   2502 Apr 23 21:12 configure
drwxr-xr-x 4 1001 1001     72 Aug 26 20:14 contrib
drwxr-xr-x 2 1001 1001     40 Aug 26 20:14 html
-rw-r--r-- 1 1001 1001   1397 Apr 23 21:12 LICENSE
drwxr-xr-x 2 1001 1001     21 Aug 26 20:14 man
-rw-r--r-- 1 1001 1001     49 Apr 23 21:12 README
drwxr-xr-x 9 1001 1001     91 Aug 26 20:14 src

  • auto中是一些判断操作系统支持,编译等相关的文件。

  • CHANGES:是版本的更改日志(.ru是俄语版,因为作者是俄罗斯)

  • conf中是示例配置文件,可方便配置,可以直接拷贝到安装目录,简化配置。

  • configure脚本:是编译生成中间文件前的一个必备动作。

  • contrib : 提供了语法高亮支持脚本,让vim打开时,语法高亮。需要拷贝contrib中到 本地vim目录(如果根目录没有该目录,先mkdir ~/.vim)

cp -r contrib/vim/* ~/.vim/
  • man:帮助目录

  • html: 有两个默认页面一个是报错后的显示

  • src: 源码目录

5.conf配置文件高亮显示:

将源码目录的vim目录拷到系统用户根目录:(如果系统不存在.vim目录,先新建目录)

cp -r contrib/vim/* ~/.vim/

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值