点赞
评论
收藏
分享
举报
ngx_trace
发表于2020-08-30 11:14

浏览 1.4k

文章标签

授权协议:
Apache License 2.0
原作者联系方式:
Alexandr Gomoliako <zzz@zzz.org.ua>
功能说明:
模块功能: 打印显示nginx运行时态的调用栈。 使用profiling指令功能和符号表来记录和打印调用。有助于对复杂问题的定位和学习nginx的内部原理。

安装使用:

1)安装

    下载ngx_trace模块并且编译nginx 
        % ./configure --add-module=/path/to/ngx_trace  && make

    确保nginx二进制代码可以工作
        % ./objs/nginx -V

    准备nginx的运行环境
        % mkdir mynginx
        % mkdir mynginx/logs
        % cp -r conf mynginx/
        % cp -r html mynginx/

    编辑nginx配置文件nginx.conf. 确保nginx以前台模式运行在单进程结构下。还要确保使用的socket端口当前用户可以使用。

        daemon off;
        master_process off;
    
        ...
    
        http {
            server {
                listen 5678;
        ...

    把错误重定向到stderr也很有用

        error_log /dev/stderr debug;

    使用 tracerx.pl脚本查看调用栈:

        % /path/to/ngx_trace/tracerx.pl ./objs/nginx -p mynginx

    精细定位: 打印 文件名, 行号, http event模块的调用,并且忽略access.log的信息:

        % ./tracerx.pl -l -f 'core/ngx_conn|http/|event/' \
                       -i 'get_indexed_variable|_log_' \
                       ./objs/nginx -p mynginx

语法:
    tracerx.pl [OPTIONS] COMMAND [ARGS]

选项:
    -l      print filename, line number saved from "nm -l" and time offset

    -s PATTERN
            print calls matching specified regex pattern only

    -i PATTERN
            ignore calls matching regex pattern

    -f PATTERN
            print calls if filename matches pattern

    -t      show how much time it took to run each function in microseconds

    -u      show addresses of unknown functions

举例:
    Show all calls within src/http and src/event modules:

        % ./tracerx.pl -f 'src/http|src/event' ./objs/nginx -p mynginx

    Show calls within http and ignore all calls containing _log_ in function
    name:

        % ./tracerx.pl -f 'src/http' -i '_log_' ./objs/nginx -p mynginx

模块代码:

https://github.com/PiotrSikora/ngx_trace

模块作者:

Alexandr Gomoliako <zzz@zzz.org.ua>
    或者
    alexandr.gomoliako@gmail.com

模块版权类型:

双版权:
   1 GPL 或者 Artistic License
2) Apache 2.0 License


已修改于2023-03-09 02:07
创作不易,留下一份鼓励
皮皮鲁

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
皮皮鲁
这家伙很懒还未留下介绍~
85
文章
2
问答
41
粉丝
相关文章
概述 Nginx 从 1.9.0 开始加入了 stream 模块支持四层的代理,转发和负载均衡。但是,stream 模块的功能相对简单。对需要 ALG 处理的协议比如 FTP 的支持也远远不够。我试着去修改了 Nginx 的源代码,添加了alg模块。使之支持了 FTP主动模式和被动模式下的 ALG 功能。 Github 的源码地址为 : https://github.com/pei-jikui/nginx-alg。代码本身不困难,困难的是如何把代码模块化,有机地融入nginx原有的框架结构中,尽量少地修改已有的框架代码。而后者,需要对stream模块乃至nginx本身的框架和代码有一定的熟悉程度。图 1:FTP被动模式 数据连接 图2 :FTP主动模式 数据连接可能大家会说,Passive 模式不需要ALG 。准确
点赞 6
浏览 3.6k
使用配置方式:install./configure--add-module={module_dir}&&make&&makeinstallconfserver{ listen80; client_max_body_size100m; location/{ roothtml/upload; } #Uploadformshouldbesubmittedtothislocation location/upload{ #Passalteredrequestbodytothislocation upload_pass/example.php; #Storefilestothisdirectory #Thedirectoryishashed,subdirectories0123456789shouldexist
点赞 3
浏览 2.7k
使用方法:1.创建tableCREATETABLE oauth_access_token (id int(10)NOTNULLAUTO_INCREMENT,access_token varchar(255)DEFAULTNULL,expires_in int(10)NOTNULL,last_used_time int(10)NOTNULL,PRIMARYKEY(id),KEY ACCESS_TOKEN (access_token))ENGINE=InnoDBDEFAULTCHARSET=utf8;2.安装Oauth模块cd/work/nginx-1.8.0&&./configure--add-module=/work/nginx-http-oauth-module&&make3.添加配置请参照源码连接中的nginx.conf 4.使用Oauth模块a)创建访问tokenhttp://192.168.1.104/token?appid=
点赞 3
浏览 2k