nginx的编译安装
使用Linux下通用的三板斧即可:
./configure make make install

查看帮助选项
./configure --help

禁用编译器优化
方法一:
CFLAGS="-g -O0" ./configure
另一种方法,但是会报错
./configure --with-cc-opt='-g –O0'
checking for int size ...
./configure: error: can not detect int size

强制编译所有文件
如果之前已经执行过make,那么在进行第二次make时,需带上强制重新编译 选项-B 或者--always-make
也可以通过刷新所有源文件的时间戳,间接达到重新编译出一个新Nginx可执行程序的目的。
find .-name "*.c" | xargs touch

安装依赖库
sudo apt install libpcre3 libpcre3-dev //PCRE库
sudo apt install zlib1g-dev //zlib库
sudo apt install openssl libssl-dev //OpenSSL库

指定配置文件
nginx -c /usr/local/nginx/conf/nginx.conf.test

通过ps命令可以看到Nginx是否已正常执行
ps auxf | grep nginx | grep -v grep

查看Nginx对应的监听套接口
netstat -natp | grep nginx

nginx/gdb 调试

在默认情况下,Nginx会有多个进程,所以需通过如下类似命令正确找到我们要调试的进程
ps -efH | grep nginx

gdb -p 1234
查看系统调用
strace -p 1234
wget localhost
查看nginx内的函数调用
pstack 1234

strace输出的每一行记录一次系统调用,等号左边是系统调用名以及调用参数,等号右边是该系统调用的返回值。逐一说明如下所述。
1.epoll_wait返回值为1,表示有1个描述符存在可读/写事件,这里当然是可读事件。
2.accept4接受该请求,返回的数字3表示socket的文件描述符。
3.epoll_ctl把accept4建立的socket套接字(注意参数3)加入到事件监听机制里。
4.recv从发生可读事件的socket文件描述符内读取数据,读取的数据存在第二个参数内,读取了107个字节。
5.stat64判断客户端请求的html文件是否存在,返回值为0表示存在。
6.open/fstat64打开并获取文件状态信息。open文件返回的文件描述符为9,后面几个系统调用都用到这个值。
7.writev把响应头通过文件描述符3代表的socket套接字发给客户端。
8.sendfile64把文件描述符9代表的响应体通过文件描述符3代表的socket套接字发给客户端。
9.再往文件描述符4代表的日志文件内write一条日志信息。
10.recv看客户端是否还发了其他待处理的请求/信息。
11.最后关闭文件描述符3代表的socket套接字。

《深入剖析Nginx》 笔记的更多相关文章

  1. HTML+CSS笔记 CSS笔记集合

    HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...

  2. CSS笔记--选择器

    CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...

  3. HTML+CSS笔记 CSS中级 一些小技巧

    水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...

  4. HTML+CSS笔记 CSS中级 颜色&长度值

    颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...

  5. HTML+CSS笔记 CSS中级 缩写入门

    盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...

  6. HTML+CSS笔记 CSS进阶再续

    CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...

  7. HTML+CSS笔记 CSS进阶续集

    元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...

  8. HTML+CSS笔记 CSS进阶

    文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...

  9. HTML+CSS笔记 CSS入门续集

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...

  10. HTML+CSS笔记 CSS入门

    简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...

随机推荐

  1. centos7中关闭防火墙命令

    1.命令行界面输入命令"systemctl status firewalld.service"并按下回车键. 2.然后在下方可以查看得到"active(running)& ...

  2. 【PyQt5学习-01-】PyQt5 能做什么?要学什么?

    1.能做什么 简单讲,就是用python做一个界面,表达你的想法或设计 基于python语言的GUI工具库,用于开发小型的桌面应用,一些demo 也可用于课程设计,用于呈现效果,如数字图像处理.数据库 ...

  3. Spring Cloud Stream 消息驱动

    屏蔽底层消息中间件的差异,降低切换成本 , 统一消息的编程模型. 通过定义绑定器Binder 作为中间件. 实现应用程序与消息中间件的细节之间的隔离. 消息发送端: <dependencies& ...

  4. VMware-查看虚拟机版本

    [root@localhost /]# uname -a Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22: ...

  5. [UnityShader]说厌了的遮挡显示

    首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...

  6. JavaScript项目榜单

    JavaScript项目榜单 参考资料 2022年最受欢迎的JavaScript项目榜单出炉 Best of JS 正式公布 2022 年 JavaScript 明星项目榜单 该榜单提供了过去 12 ...

  7. 靶机练习5: Sar

    靶机地址 https://www.vulnhub.com/entry/sar-1,425/ 信息收集阶段 进行全端口扫描,枚举目标的端口和服务 nmap -n -v -sS --max-retries ...

  8. c# message (转)

    一.消息概述 Windows下应用程序的执行是通过消息驱动的.消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理. 什么是消息(Message) 消息就是通知和命令. ...

  9. 【SSO单点系列】(4):CAS4.0 之非Ajax-iframe 登录

    一.描述 不使用Ajax-iframe 登录 仍然要自定义页面 二.思路: 将数据提交给服务器登录页面,服务登录页面自动提交. 三.实现 1.客户端 <form name="login ...

  10. python_test_0001_base_string

    #!/usr/bin/python # -*- coding: UTF-8 -*- from lib_001_decorator_log_funcname import decorator_log_f ...