使用 CLion debug 跟踪 nginx/OpenResty 源码

本文介绍了如何在本地对Nginx源码进行定制化开发,包括下载必要的软件包(如nginx和pcre),设置开发环境,创建CMakeLists.txt文件,修改configure文件,以及配置和启动nginx的过程。
摘要由CSDN通过智能技术生成

场景需求说明,需要对 nginx 源码进行定制化开发,暴露几个 http 框架相关的变量,所以需要在本地 debug nginx 源码。

开发环境需要用到的软件包

  • CLion 软件
  • nginx 源码 https://hg.nginx.org/nginx/tags
    (下载链接 https://hg.nginx.org/nginx/archive/release-1.25.1.tar.gz)
  • pcre 源码包 https://sourceforge.net/projects/pcre/files/pcre/8.43/
    (下载链接 https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz/download)

准备开发环境

  1. 解压 nginx 源码到目标目录
    在这里插入图片描述

  2. 使用 CLion 导入nginx项目
    2.1 在 nginx 源码的 auto 目录下创建名为 cmake 的文件
    在这里插入图片描述

cmake 的文件内容

#!/usr/bin/env bash
NGX_CMAKE_FILE=CMakeLists.txt
NGX_CMAKE_TMP=$NGX_OBJS/tmp

#output includes
cmake_ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS \
             sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
                   -e "s/\//$ngx_regex_dirsep/g"`
cat << END                                  > $NGX_CMAKE_TMP
cmake_minimum_required(VERSION 3.6)
include_directories(
    .
    $cmake_ngx_incs)
END

#output src
cmake_ngx_src="$CORE_SRCS $HTTP_SRCS $MAIL_SRCS $NGX_MISC_SRCS $NGX_ADDON_SRCS $NGX_SHARED_SRCS"

cmake_ngx_src=`echo $cmake_ngx_src | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"\
                             -e "s/\//$ngx_regex_dirsep/g"`

cat << END                                    >> $NGX_CMAKE_TMP
set(SOURCE_FILES
    $NGX_OBJS/ngx_modules.c
    $cmake_ngx_src)
END

#output target
cat << END                                   >> $NGX_CMAKE_TMP
add_executable(nginx \${SOURCE_FILES})
END


#output lib
echo ${CORE_LIBS}
CMAKE_CORE_LIBS=`echo ${CORE_LIBS} | sed -e "s/-l//g"`

cat << END                                   >> $NGX_CMAKE_TMP
target_link_libraries(nginx $CMAKE_CORE_LIBS)
END

if [ -f $NGX_CMAKE_TMP ]
then
    (cat $NGX_CMAKE_TMP | sed -e "s/\\\//g") > $NGX_CMAKE_FILE
    rm $NGX_CMAKE_TMP
fi


2.2 修改nginx 源码 auto 目录下的 configure 文件,在. auto/make 前添加一行 . auto/cmake ,如下图
在这里插入图片描述

  1. 解压 pcre 源码到 ~/opt 目录
    在这里插入图片描述

  2. 准备构建项目
    4.1执行下面命令

./auto/configure --prefix="./" --with-pcre=/Users/your_path/opt/pcre-8.43

在这里插入图片描述

执行成功后,会在源码根目录生成 objs 目录、 CMakeLists.txt 文件和 Makefile 文件。
在这里插入图片描述
4.2 点击 Load CMake project
在这里插入图片描述
加载完成后会生成 cmake-build-debug 目录
在这里插入图片描述
4.3 准备配置文件

  • 在生成的 cmake-build-debug 目录下创建文件夹 logs
  • conf 文件夹复制到 cmake-build-debug 目录下
  • docs/html 文件夹复制到 cmake-build-debug 目录下

在这里插入图片描述

4.4 修改文件 cmake-build-debug/conf/nginx.conf
在文件最上方添加下面内容

daemon off;
master_process off;

在这里插入图片描述

  1. 启动 nginx

在这里插入图片描述

在这里插入图片描述
打开浏览器访问 http://localhost
在这里插入图片描述

END

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值