zoukankan      html  css  js  c++  java
  • 聊聊、Nginx GDB与MAIN

      上一篇文章主要介绍了 Nginx 在 Window 和 Linux 平台上的安装。本章节主要介绍 Nginx 源码学习方法和源码结构,以及 Nginx 启动时 main 方法的位置,参数信息。后面的章节主要是 Linux 平台,你要问为何是 Linux,而不是 Window。我只能说 Nginx 是基于 Linux 平台开发出来的,我也习惯了 Linux 平台开发。

      上一篇文章我讲了安装,现在打开 MobaXterm ,连接上 Nginx 服务器。输入 whereis nginx 命令查看安装目录:

      是的我的安装目录在  /usr/local/nginx。

      现在我们进入这个目录,看看里面有哪些文件。

      暂时先不管这些文件是做啥用的,像 fastcgi_temp,proxy_temp , scgi_temp ,uwsgi_temp 这些模块都是可配的,以后咱们再详细的讲解。

      大家有没有看到 sbin 文件,对的,这里面就是我们启动 Nginx 的地方。

      先进入看看有啥:

      有两个文件,一个 nginx ,一个 nginx.old 。old 文件是之前为了平滑升级所备份的 nginx 文件。我们启动只需要nginx 就行了。

      ok,我们启动 Nginx 。输入 ./nginx 就行了。

      怎么知道启动成功没有呢?输入 ps -ef|grep nginx 。

      我们看到了一个 nginx: master process 主线程,一个 nginx: worker process 工作线程,这个工作线程多少是可配的,跟服务器内核数量有关。ok,如果你看到这两个线程,说明Nginx已经启动。为了进一步验证,我们访问http://localhost 页面,默认 80 端口。输入 curl http://localhost

      已经访问到相关欢迎页面了,默认 html 文件里面 index.html 。 ok,到这里我们 Nginx 已经正常启动。

      接下来,我们通过 gdb 调试工具找到 Nginx 启动时的 main 方法在哪。

      还是在 sbin 目录下,我们输入 gdb nginx 命令。

      gdb 调试工具是 Linux 自带的,对于调试代码非常的方便,具体 gdb 信息大家可以上网看看。 ok,接下来输入  b  main。

      好的,看到了一行信息,file  src/core/nginx.c  line  198。

      也就是在 nginx.c 文件的 198 行,这个地方就是 main 方法开始地方。不同的 Nginx 版本这个 main 方法所在的行也有不一样,大家根据自己的信息来找就行了。

      怎么找呢?

      学习源码确实需要方法,不然会很乱,也很累。上一章讲安装,Nginx 网上下载的安装包我放在了 /usr/local/src/nginx包里面。我们去看看。

      我下载的版本是1.10.2

      左边的 nginx-1.10.2 包是解压后并且编译过的,将这个包拷贝到 Win 系统,放你自己计划的目录就行。我放在 G:学习日记 ginx ginx-1.10.2。

      ok,我们来找 src/core/nginx.c  line  198,进入 G:学习日记 ginx ginx-1.10.2,你们按照自己的来,找到nginx.c 的198行。 

      ok,我们找到了 main 方法,接下来的文章我将讲解 main 方法,到底 Nginx 启动的时候做了什么事情,关于 main 方法里面的代码,大家可以自己先看看。谢谢大家观看!

  • 相关阅读:
    ps 批量杀死进程
    福特F-550 4x4 越野房车设计方案欣赏_房车欣赏_21世纪房车网
    geoserver技术交流群
    JAVA 中基本数组类型转byte数组
    JAVA 图片png和jpeg格式的转化方式
    win10下安装postgresql10 出现Problem running post-install step. Installation may not complete correctly.The database cluster initialisation failed
    centos7安装postgresql和postgis
    jdk1.8的jvm参数的查看以及GC日志的分析
    [warn] Neither build.sbt nor a 'project' directory in the current directory: C:Usershgt
    centos7使用docker制作tomcat本地镜像
  • 原文地址:https://www.cnblogs.com/xums/p/6741089.html
Copyright © 2011-2022 走看看