nginx篇 --nginx介绍和一些主线程支持的信号(signal)

140 阅读3分钟

什么是nginx?

在官网的初学者指南有这样一句话

nginx employs event-based model and OS-dependent mechanisms to efficiently distribute requests among worker processes.

nginx采用基于事件的模式和依赖操作系统的机制,以在工作进程之间高效地分发请求。从上面的话我们可以简单理解为nginx是用来分发请求的。下面给出比较深入的解释

nginx是一个开源的高性能HTTP和反向代理服务器。它被设计用于处理高并发的网络流量,能够快速地响应客户端请求并将请求转发到相应的后端服务器。nginx采用事件驱动的架构和轻量级的进程模型,可以有效地处理大量并发连接,同时占用较少的系统资源。除了作为HTTP服务器和反向代理服务器,nginx还支持静态文件服务、负载均衡、缓存、SSL/TLS加密等功能。

nginx工作进程

nginx拥有一个主进程(master process)和若干个工作进程(worker process),主进程是用来加载配置文件和维护工作进程。

nginx下载

nginx下载可以参考官网下载。本文通过docker跑nginx镜像来对nginx进行学习。

nginx默认的配置文件位置

nginx配置文件位置一般会出现在以下地方,名称nginx.conf,我的机子默认位置在/etc/nginx内

  1. /usr/local/nginx/conf
  2. /etc/nginx
  3. /usr/local/etc/nginx

1685935754614.png

nginx -s

通过nginx -s 可以来关闭nginx,或者重新加载nginx配置文件,如

  1. nginx -s stop

导致服务器停止处理新的连接请求,并关闭现有的连接。即nginx会中断当前正在进行的请求。

  1. nginx -s quit

等待所有请求处理完成后再停止服务器。这意味着当前正在处理的请求会继续完成,而不会中断连接。

  1. nginx -s reload

这个命令用于重新加载Nginx的配置文件,使新的配置生效,而无需停止服务器。当您修改了Nginx的配置文件时,可以使用该命令来重新加载配置,而不必停止和启动服务器。新的配置将应用于新的连接请求。

  1. nginx -s reopen

这个命令用于重新打开Nginx的日志文件。当您修改了Nginx的日志配置,例如更改日志文件的位置或重新命名日志文件时,可以使用该命令来通知Nginx重新打开日志文件,使其可以开始记录新的日志。

关闭nginx的其他方式

kill 主线程

nginx会将主线程的id存放在/var/run/nginx.pid/usr/local/nginx/logs目录下,如

1685932887917.png

或者我们可以借助linux系统的ps命令查看主进程id,如ps -a | grep nginx

image.png

通过kiss -s QUIT 主进程号 相当于 nginx -s quit

ps命令解释

ps命令是Linux系统用于查看当前正在运行的进程信息的命令,可以结合grep命令在进行筛选。| 表示管道,意思是将前面命令的输出作为后面命令的输入。因此

ps -a | grep nginx的意思是查看所有与nginx相关的进程