1-nginx-目录,配置文件
使用 工具tree查看目录结构
1、安装tree工具: yum install -y tree
2、 tree /usr/local/nginx (tree后面跟的是Nginx的安装目录)
查看进程的PID
1、查看nginx的master进程和worker进程: ps -ef | grep nginx
2、nginx的./configure的配置参数的时候,有一个参数是–pid-path=PATH默认是 /usr/local/nginx/logs/nginx.pid
所以可以通过查看该文件来获取nginx的master进程ID
信号
信号 | 作用 |
---|---|
TERM或INT | 立即关闭整个服务 |
QUIT | “优雅”地关闭整个服务 |
HUP | 重读配置文件并使用服务对新配置项生效 |
USR1 | 重新打开日志文件,可以用来进行日志切割 |
USR2 | 平滑升级 到最新版的nginx |
WINCH | 所有子进程不在接收处理新连接相当于给work进程发送QUIT指令 |
调用命令为 kill -signal PID
1、发送 TERM 或 INT 信号给master进程,会将Nginx服务 立即关闭 。
2、发送 QUIT 信号给master进程,master进程会控制所有的work进程不再接收新的请求, 等所有请求处理完后,在把进程都关闭掉
3、发送 HUP 信号给master进程,master进程会把控制旧的work进程不再接收新的请求,等处理完请求后将旧的work进程关闭掉,然后根据nginx的配置文件重新启动新的work进程
4、发送 USR1 信号给master进程,告诉Nginx重新开启日志文件
5、 发送 USR2 信号给master进程, 重新开启对应的master进程和work进程 ,这时系统里会有两个master进程和四个master进程
新的master进程的PID会被记录在 /usr/local/nginx/logs/nginx.pid
而之前的旧的master进程PID会被记在 /usr/local/nginx/logs/nginx.pid.oldbin文件中
最后再发送 QUIT 信号给旧的master进程
6、发送 WINCH 信号给master进程,让master进程控制不让所有的work进程在接收新的请求了
请求处理完后关闭work进程。 注意master进程不会被关闭掉
nginx命令行控制
在sbin目录下,可以对nginx进行状态控制
./nginx-v 查看版本号信息
./nginx-V 查看版本号信息和配置信息
./nginx-t 测试配置文件语法是否正确
./nginx-T 测试nginx的配置文件语法是否正确并列出用到的配置文件信息然后退出
./nginx-q 在配置测试期间禁止显示非错误消息
./nginx-s s即signal信号,后面可以跟
- stop[快速关闭,类似于TERM/INT信号的作用]
- quit[优雅的关闭,类似于QUIT信号的作用]
- reopen[重新打开日志文件类似于USR1信号的作用]
- reload[类似于HUP信号的作用]
./nginx-p 指定Nginx的prefix路径
./nginx-c 指定Nginx的配置文件路径
./nginx-g 补充Nginx配置文件,向Nginx服务指定启动时应用全局的配置
nginx.conf配置文件结构
nginx.conf配置文件中默认有三大块:全局块、events块、http块
http块中可以配置多个server块,每个server块又可以配置多个location块
全局块
一、user指令
可以指定启动运行工作进程的用户及用户组,这样对于系统的权限访问控制的更加精细,也更加安全
二、work process指令
1、master_process:用来指定是否开启工作进程
2、worker _ processes:用于配置Nginx生成工作进程的数量 ,这个是Nginx服务器实现并发处理服务的关键所在
process的值越大,可以支持的并发处理量也越多 但事实上这个值的设定是需要受到来自服务器自身的限制建议将该值和服务器CPU的内核数保存一致
三、其他指令
1、deamon: 设定Nginx是否以守护进程的方式启动
守护进程是linux后台一种服务进程,特点是独立于控制终端,不会随着终端的关闭而停止
2、pid: 配置nginx当前master进程的进程号ID存储的文件路径
3、error_log: 配置nginx错误日志存放路径
日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg
调试 |信息| 通知 | 警告 | 错误 |临界|警报|紧急
4、include: 引入其他配置文件
测试:
1)创建一个main.conf,在里面写上配置文件
2)引入配置文件
3)加载成功
events块
1、 accept_mutex: 设置nginx网络连接序列化
如果设置为on,将会对多个Nginx进程接收连接进行序列号,一个个来唤醒接收, 防止了多个进程对连接的争抢
2、 multi_accept: 用来设置是否允许同时接收多个网络连接
如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接。否则,一个工作进程可以同时接受所有的新连接
3、 worker_connections: 用来配置单个worker进程最大的连接数
连接数不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数
4、 use:用来设置Nginx服务器选择哪种事件驱动来处理网络消息
HTTP块
自定义MIME-Type(网络资源的媒体类型)
default_type:用来配置Nginx响应前端请求默认的MIME类型
自定义服务日志
1、access_log:用来设置用户访问日志的相关属性
2、log_format:用来指定日志的输出格式。
3、sendfile:用来设置Nginx服务器是否使用sendfile()传输文件
该属性可以大大提高Nginx处理静态资源的性能
4、keepalive_timeout:用来 设置长连接的超时时间
5、keepalive_requests:用来设置一个keep-alive 连接使用的次数