• 一、nginx自定义路径和模块安装[源码目录结构、自定义configure配置路径和模块]


    一、源码目录结构

    • 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的核心)也放置于此

    二、自定义configure配置路径和模块

    1.路径

    解释:可通过将下面参数在源码安装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         
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.模块

    2.1 初步介绍

    解释:之前本专栏的一篇文章在源码编译安装时,提到了这个,下面的示例可以看到有很多东西,可以通过./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

    2.2 自定义模块安装

    解释:值得注意的是,nginx默认安装了40多个模块构成nginx的基本功能,即使./configure什么参数也没有也会被安装上(如下)(可通过./configure后面加参数取消某模块的默认安装);同时存在某些模块并不在默认安装里面但也是很重要的(nginx提供,但默认不安装,需要通过./configure后面添加参数进行安装)例如--with-mail_ssl_module,第三方模块安装:https://blog.csdn.net/weixin_46765649/article/details/128018659

    • HTTP
    • HTTP_CACHE
    • HTTP_CHARSET
    • HTTP_GZIP
    • HTTP_SSI
    • HTTP_ACCESS
    • HTTP_AUTH_BASIC
    • HTTP_MIRROR
    • HTTP_USERID
    • HTTP_AUTOINDEX
    • HTTP_GEO
    • HTTP_MAP
    • HTTP_SPLIT_CLIENTS
    • HTTP_REFERER
    • HTTP_REWRITE
    • HTTP_PROXY
    • HTTP_FASTCGI
    • HTTP_UWSGI
    • HTTP_SCGI
    • HTTP_GRPC
    • HTTP_MEMCACHED
    • HTTP_LIMIT_CONN
    • HTTP_LIMIT_REQ
    • HTTP_EMPTY_GIF
    • HTTP_BROWSER
    • HTTP_UPSTREAM_HASH
    • HTTP_UPSTREAM_IP_HASH
    • HTTP_UPSTREAM_LEAST_CONN
    • HTTP_UPSTREAM_RANDOM
    • HTTP_UPSTREAM_KEEPALIVE
    • HTTP_UPSTREAM_ZONE
    • MAIL_POP3
    • MAIL_IMAP
    • MAIL_SMTP
    • STREAM_LIMIT_CONN
    • STREAM_ACCESS
    • STREAM_GEO
    • STREAM_MAP
    • STREAM_SPLIT_CLIENTS
    • STREAM_RETURN
    • STREAM_UPSTREAM_HASH
    • STREAM_UPSTREAM_LEAST_CONN
    • STREAM_UPSTREAM_RANDOM
    • STREAM_UPSTREAM_ZONE
  • 相关阅读:
    ES6解构赋值及ES6的一些简写介绍
    水果店圈子:现在开水果店需要什么设备,开水果店所需要的设备有哪些
    什么是UDP、TCP,怎么用UDP和TCP实现网络通信和数据传输
    显示控件——AV输入显示
    【#HDC2022】HarmonyOS体验官活动正式开启,赶快投稿赢限量奖品吧!
    jdk 8-future 异步处理-轮询isDone判断完成-springBoot示例
    php session 的封装 (收藏)
    Jenkins(6)流水线(pipeline)、Jenkinsfile设置、多分支构建及简单总结
    [RCTF 2019]nextphp
    项目整体管理
  • 原文地址:https://blog.csdn.net/weixin_46765649/article/details/128045791