《深入剖析Nginx》 笔记
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》 笔记的更多相关文章
- HTML+CSS笔记 CSS笔记集合
HTML+CSS笔记 表格,超链接,图片,表单 涉及内容:表格,超链接,图片,表单 HTML+CSS笔记 CSS入门 涉及内容:简介,优势,语法说明,代码注释,CSS样式位置,不同样式优先级,选择器, ...
- CSS笔记--选择器
CSS笔记--选择器 mate的使用 <meta charset="UTF-8"> <title>Document</title> <me ...
- HTML+CSS笔记 CSS中级 一些小技巧
水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...
- HTML+CSS笔记 CSS中级 颜色&长度值
颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 语法: p{co ...
- HTML+CSS笔记 CSS中级 缩写入门
盒子模型代码简写 回忆盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左. 语法: margin:10px 15p ...
- HTML+CSS笔记 CSS进阶再续
CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...
- HTML+CSS笔记 CSS进阶续集
元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...
- HTML+CSS笔记 CSS进阶
文字排版 字体 我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性. 语法: body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果 ...
- HTML+CSS笔记 CSS入门续集
继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...
- HTML+CSS笔记 CSS入门
简介: </span>年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的<span>脚本解释程序</span>,作为ABC语言的一种继承. & ...
随机推荐
- python如何画高光谱立体图像
语句含义:spectral.view_cube(image,bands=[29,19,9]) 中的29,19和9是第几个波段,可以改成数据波段数以内的其他的数值
- lama-cleaner全部命令行参数
usage: main.py [-h] [--host HOST] [--port PORT] [--config-installer] [--load-installer-config] [--in ...
- Docker工作管理中实用操作
"build once ,run anywhere" ...
- 【3】java之string类
String 是一个字符串类型的类,使用双引号定义的内容都是字符串,但是 String 本身是一个类,使用上会有一些特殊. 一. String类对象的两种实例化方式 1.1 直接赋值 public c ...
- vue框架回顾
- frp使用教程
内网穿透工具---frp使用教程 https://blog.csdn.net/u011215939/article/details/103383373
- Nacos安装与启动
一.官网下载 1. 地址 https://github.com/alibaba/nacos/releases 二.安装 将下载的安装包解压至非中文目录即可,解压后目录: bin 目录下有启动脚本, ...
- CVE-2013-2566 SSL/TLS RC4 信息泄露漏洞 修复方案
详细描述 安全套接层(Secure Sockets Layer,SSL),一种安全协议,是网景公司(Netscape)在推出Web浏览器首版的同时提出的,目的是为网络通信提供安全及数据完整性.SSL在 ...
- mac + win ,用python一行代码批量下载哔哩哔哩视频
首先,你的机器已经安装python,然后是安装you-get. 打开终端,输入 pip3 install you-get,回车,即开始安装,如下图所示. 编辑 安装成功后,比如要下载某个视屏,首 ...
- 使用Telnet伪造邮件发送
注意:手抖就会败北,敲错就会白给,输入错误只能rset重新输入命令. 1.打开Telnet服务 搜索"程序和功能"->启用或关闭Windows功能->点选Telnet客 ...