什么是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内
- /usr/local/nginx/conf
- /etc/nginx
- /usr/local/etc/nginx
nginx -s
通过nginx -s 可以来关闭nginx,或者重新加载nginx配置文件,如
- nginx -s stop
导致服务器停止处理新的连接请求,并关闭现有的连接。即nginx会中断当前正在进行的请求。
- nginx -s quit
等待所有请求处理完成后再停止服务器。这意味着当前正在处理的请求会继续完成,而不会中断连接。
- nginx -s reload
这个命令用于重新加载Nginx的配置文件,使新的配置生效,而无需停止服务器。当您修改了Nginx的配置文件时,可以使用该命令来重新加载配置,而不必停止和启动服务器。新的配置将应用于新的连接请求。
- nginx -s reopen
这个命令用于重新打开Nginx的日志文件。当您修改了Nginx的日志配置,例如更改日志文件的位置或重新命名日志文件时,可以使用该命令来通知Nginx重新打开日志文件,使其可以开始记录新的日志。
关闭nginx的其他方式
kill 主线程
nginx会将主线程的id存放在/var/run/nginx.pid
或/usr/local/nginx/logs
目录下,如
或者我们可以借助linux系统的ps命令查看主进程id,如ps -a | grep nginx
通过kiss -s QUIT 主进程号
相当于 nginx -s quit
ps命令解释
ps
命令是Linux系统用于查看当前正在运行的进程信息的命令,可以结合grep
命令在进行筛选。|
表示管道,意思是将前面命令的输出作为后面命令的输入。因此
ps -a | grep nginx
的意思是查看所有与nginx相关的进程