《实战Nginx》读书笔记
最近今天读了一本书叫做《实战Nginx:取代Apache的高性能Web服务器》,看后对Nginx 了解了不少。但是还有很多地方不是很了解。不过此书可以作为一本参考手册来使用,里面的讲解很详细。
一下是看过这本书的,自己摘抄和做的一些笔记。
Nginx 特点介绍
高效:Nginx 能够采用高效的epoll(linux 2.6内核)作为网络I/O模型
Apache 采用的是传统的select模型,多进程模式。经常派生子进程
消耗的cpu 等服务器资源要比nginx高很多
高并发、在实际生产环境中,可以支持2w以上的并发数
内存消耗低。开启64个php-cgi进程消耗1280mb内存
配置简单、成本低廉、稳定性好、内置健康检查功能
Nginx、apache、lighttpd 对比图
Nginx 安装
Nginx 可以在windows、linux下使用,在window下,使用简单,下载对应的window 版本,运行里面的nginx.exe 即可启动
linux 下需要编译,相对比较麻烦。
安装环境要求:至少需要10m以上的磁盘空间,因为nginx编译完成会占用4M左右的空间
以centos为例
安装gcc 编辑器
yum -y install gcc gcc-c++ autoconf automake
模块依赖性:开启gzip 需要zlib模块,rewrite功能 需要pcre模块 ssl 功能需要openssl库
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
编译Nginx
tar zxvf nginx-xx.tar.gz
cd nginx-xx
./configure --
Nginx 的configure脚本的支持以下选项(里面的选项很多,此处只列出一些常用的)
--prefix=<path> nginx 安装的路径
--sbin-path=<path> nginx 可执行文件的安装路径
--conf-path=<path> 在没有给定c选项的下默认的nginx.conf 没有指定,默认是prefix/conf/nginx.conf
--pid-path=<path> 默认的nginx.pid 的路径 <prefix>/logs/pid
--lock-path =<path> nginx.lock文件的路径
--error-log-path=<path> 默认的<prefix>/logs/error.log
--http-log-path=<path> 默认访问日志的路径 access.log
--user=<user> 指定用户
--group=<group> 指定分组
--builddir=Dir 指定编译的目录
--with-rtsing_module 启用rtsig 模块
--with-select_module 允许或不允许开启select模式。如果configure没有找到合适的模式,则使用select模式
--with-poll_module 允许或者不允许开启poll模式
--with-http-ssl_module 开启HTTP SSL 模块
Nginx 的启动、重启、停止
启动:
Nginx -c [nginx.conf的路径]
停止
Kill -QUIT `/usr/local/nginx/logs/nginx.pid`
快速停止
pkill -9 nginx
平滑启动
/usr/local/nginx(nginx安装目录) -c -t /usr/local/nginx/conf/nginx.conf(nginx的默认的配置文件目录) 这样检查配置文件是否正确
Nginx的信号控制
kill [信号控制] [pid]
TERM INT 快速关闭
QUIT 从容关闭
HUP 平滑重启 重新加载配置文件
USR1 重新打开日志文件
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现