auto
:存放的是编译相关的脚本
CHANGES
:版本变更记录
CHANGES.ru
:俄罗斯文的版本变更记录
conf
:nginx默认的配置文件
configure
(重要):nginx软件的自动脚本程序,很重要,下面重点讲这个作用:
检测环境及根据环境检测结果生成C代码
生成编译代码需要的Makefile文件
contrib
:存放的是几个特殊的脚本文件,其中README中对脚本有着详细的说明
html
:存放的是Nginx自带的两个html页面,访问Nginx的首页和错误页面
LICENSE
:许可证的相关描述文件
man
:nginx的man手册
README
:Nginx的阅读指南
src
:Nginx的源代码
objs
(重要):执行./configure
之后该文件会被自动创建并且写入./configure
生成的中间文件,之后的make
会使得生成的nginx
二进制文件(nginx的核心)也放置于此
解释:可通过将下面参数在源码安装nginx执行./configure + 下面参数
实现自定义路径,./configure --help
查看可以添加的命令
--prefix=PATH (默认位置/usr/local/nginx)存放nginx安装文件的位置(不一定存放核心二进制文件(取决于--sbin-path),其里面一般html、动态模块软链等等)--sbin-path=PATH (默认位置/usr/local/nginx/sbin/nginx)二进制的核心可执行文件(名为nginx)--modules-path=PATH (默认位置/usr/local/nginx/modules)一般存放动态模块的so文件(相当于window的dll文件)--conf-path=PATH (默认位置/usr/local/nginx/conf/nginx.conf)nginx的关键配置文件--error-log-path=PATH (默认位置/usr/local/nginx/logs/error.log)错误日志--http-log-path=PATH (默认位置/usr/local/nginx/logs/access.log)访问日志--pid-path=PATH (默认位置/usr/local/nginx/logs/nginx.pid)正在运行的nginx进程号--lock-path=PATH (默认位置/usr/local/nginx/logs/nginx.lock)nginx锁--add-module=PATH 加入的第三方模块的路径--add-dynamic-module=PATH 动态加入的第三方模块的路径--http-client-body-temp-path=PATH --http-proxy-temp-path=PATH --http-fastcgi-temp-path=PATH --http-uwsgi-temp-path=PATH --http-scgi-temp-path=PATH
解释:之前本专栏的一篇文章在源码编译安装时,提到了这个,下面的示例可以看到有很多东西,可以通过./configure --help
查看可以添加的命令,其中可以根据里面指令安装某些模块
示例:./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KTLRnK/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
解释:值得注意的是,nginx默认安装了40多个模块构成nginx的基本功能,即使./configure
什么参数也没有也会被安装上(如下)(可通过./configure
后面加参数取消某模块的默认安装);同时存在某些模块并不在默认安装里面但也是很重要的(nginx提供,但默认不安装,需要通过./configure
后面添加参数进行安装)例如--with-mail_ssl_module
,第三方模块安装:https://blog.csdn.net/weixin_46765649/article/details/128018659