Nginx基础入门001

2022-12-27 0 369

一生T台的序幕即时都可能将掀开,关键性是你愿现场表演,却是挑选出避开。

Nginx源代码自学[1],下一则:ailx10:Nginx此基础进阶002

Nginx基础入门001
ailx10
1200 次进行咨询
4.9
信息安全杰出提问者
信息安全硕士学位
去进行咨询
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每一民主化在两个关键时刻只处置两个允诺,mammalian数高的这时候,须要建立大批的民主化,民主化转换会增添史钦汉的计算资源耗用。

Nginx每一worker民主化都可以与此同时处置数个允诺,当民主化数和CPU刘赐蕙成正比时,民主化间转换的付出是最轻的。

Nginx基础入门001

块实用性项2部份共同组成:

块实用性项英文名字四元组里头的文本
Nginx基础入门001

实用性项由对应的模块解析!

行首是实用性项英文名字,紧跟其后是实用性项值,数个值用空格隔开,用#注释。

实用性项的单位:

千字节兆字节毫秒秒分小时天周月年kMmssmhdwMy千字节兆字节毫秒秒分小时天周月年\begin{array}{c|c} \text{k} & \text{M} & \text{ms} & \text{s} & \text{m} & \text{h} & \text{d} & \text{w} & \text{M} & \text{y} & \\ \hline 千字节& 兆字节 & 毫秒& 秒& 分& 小时& 天& 周& 月& 年 \\ \end{array}\\

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;

Nginx基础入门001

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;

参考

^reading-code-of-nginx-1.9.2 https://github.com/y123456yz/reading-code-of-nginx-1.9.2

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务