网站首页 > 技术教程 正文
Nginx源码学习[1],
- Nginx默认安装位置:/usr/local/nginx/
- Nginx默认二进制位置:/usr/local/nginx/sbin/
- Nginx默认配置文件位置:/usr/local/nginx/conf/
- Nginx启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- Nginx停止:/usr/local/nginx/sbin/nginx -s stop
- 优雅的停止:/usr/local/nginx/sbin/nginx -s quit
- 重新加载配置:/usr/local/nginx/sbin/nginx -s reload
Nginx和Apache最大的不同:
Apache每个进程在一个时刻只处理一个请求,并发数高的时候,需要创建大量的进程,进程切换会带来无畏的系统资源消耗。
Nginx每个worker进程都可以同时处理多个请求,当进程数和CPU核数相等时,进程间切换的代价是最小的。
块配置项2部分组成:
- 块配置项名字
- 大括号里面的内容
配置项由对应的模块解析!
行首是配置项名字,紧跟其后是配置项值,多个值用空格隔开,用#注释。
配置项的单位:
千字节兆字节毫秒秒分小时天周月年kMmssmhdwMy千字节兆字节毫秒秒分小时天周月年
Nginx的基本配置项:
- 用于调试、定位问题的配置项
- 正常运行的必备配置项
- 优化性能的配置项
- events{}事件类配置项
1.用于调试进程和定位问题的配置项
1.1 是否以守护进程方式运行Nginx
语法:daemon on | off; (默认是on)
1.2 是否以master/worker方式工作
语法:master_process on | off; (默认on)
1.3 error日志的配置
语法:error_log /path/file level; (默认 logs/error.log error;)
日志级别:debug、info、notice、warn、error、crit、alert、emerg
不想记录日志的话,path/file设置为/dev/null
1.4 是否处理几个特殊的调试点
语法:debug_points [stop | abort]
一般不会使用这个配置项,这是Nginx自己设置的调试点
1.5 仅对指定的客户端输出debug级别的日志
语法:debug_connection [IP | CIDR]
events {
debug_connection 127.0.0.1;
debug_connection 192.168.0.0/24;
}
凡是输出debug日志的配置项,都需要在configure阶段加入--with-debug
1.6 限制coredump核心转储文件的大小
语法:work_rlimit_core size;
core dumps文件,面试经常问
1.7 指定coredump文件生成目录
语法:working_directory path;
2 正常运行的配置项
2.1 定义环境变量
语法:env VAR | VAR=VALUE
直接设置操作系统的环境变量
2.2 嵌入其他配置文件
语法:include /path/file;
include配置项可以将其他配置文件嵌入到当前的nginx.conf文件中,参数可以是相对路径,也可以是绝对路径(建议写绝对路径)。
2.3 pid文件的路径
语法:pid path/file;(默认:pid logs/nginx.pid;)
保存master进程ID的pid文件存放路径
2.4 Nginx worker进程运行的用户及用户组
语法:user username [groupname];(默认:user nobody nobody;)
2.5 指定Nginx worker进程可以打开的最大句柄描述符个数
语法:worker_rlimit_nofile limit;
2.6 限制信号队列
语法:worker_rlimit_sigpending limit;
设置每个用户发往Nginx的信号队列的大小。
3 优化性能的配置项
3.1 Nginx worker进程个数
语法:worker_process number;(默认:1)
3.2 绑定Nginx worker进程到指定的CPU内核
语法:woker_cpu_affinity cpumask
配置与CPU内核数相等的worker进程
3.3 SSL硬件加速
语法:ssl_engine device;
3.4 系统调用gettimeofday的执行频率
语法:timer_resolution t;
默认情况,每次内核的事件调用(epoll、select、poll、kqueue)返回时,都会执行一次gettimeofday,实际用内核的时钟来更新Nginx中的缓存时钟。当需要降低gettimeofday的调用频率时,可以使用time_resolution配置。
3.5 Nginx worker进程优先级设置
语法:worker_priority nice;(默认:0)
nice值时进程的静态优先级,-20是最高优先级,+19是最低优先级。
4 事件类配置项
4.1 是否打开accept锁
语法:accept_mutex [on | off](默认:on)
accept_mutex是Nginx的负载均衡锁,这把锁可以让多个worker进程轮流地、序列化地与新的客户端建立TCP连接。当某一个worker进程建立的连接数量达到worker_connections配置的最大连接数的7/8时,会大大地减小该worker进程试图建立新TCP连接的机会,以此实现所有worker进程之上处理的客户端请求数尽量接近。
4.2 lock文件的路径
语法:lock_file path/file;(默认:logs/nginx.lock)
4.3 使用accept锁后到真正建立连接之间的延迟时间
语法:accept_mutex_delay Nms;(默认:500ms)
如果一个work进程试图取accept锁而没有取到,它至少要等500ms的时间间隔后才能再次试图取锁。
4.4 批量建立新连接
语法:multi_accept [on | off];(默认:off)
当事件模型通知有新连接时,尽可能地对本次调度中客户端发起的所有TCP请求都建立连接。
4.5 选择事件模型
语法:use [kqueue | sting | epoll | select | poll | eventport];
4.6 每个worker的最大连接数
语法:worker_connections number;
猜你喜欢
- 2024-10-10 Nginx学习笔记(02)配置文件main段核心参数用法
- 2024-10-10 Nginx配置及应用场景之高级配置(nginx配置cgi)
- 2024-10-10 梅林固件路由通过Entware安装ONMP建立网站步骤方法
- 2024-09-14 Nginx最全详解(万字图文总结)(nginx1)
- 2024-09-14 运维基础服务篇:Nginx配置文件介绍
- 2024-09-14 Nginx-config的配置(nginx 配置说明)
- 2024-09-14 使用javascript轻松扩展nginx的功能
- 2024-09-14 Nginx配置文件详解(nginx的配置文件)
- 2024-09-14 Nginx总结(八)启用Nginx Status及状态参数详解
- 2024-09-14 Nginx基础入门004(nginx 教程)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)