提示:我的nginx安装目录为:/usr/local/nginx

一、Nginx自身命令

1.启动

#启动
#1.直接启动
#进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx
# 或者直接
/usr/local/nginx/sbin/nginx
#2.指定配置文件方式启动
#进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
#或者
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2.检查nginx配置文件

#进入nginx目录
cd /usr/local/nginx/sbin
#检查配置文件是否有语法操作
./nginx -t
# 或者显示指定配置文件
./nginx -t -c /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

如果配置文件存在语法错误,会有相应的提示信息,正常我们修改配置后,先进行检查,然后在进行重启

3.平滑的重启,修改配置后,重新加载配置

#进入nginx目录
cd /usr/local/nginx/sbin
#执行重载命令
./nginx -s reload

nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件

  1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
  2. Nginx启动新的worker进程,采用新的配置文件
  3. Nginx将新的请求分配新的worker进程
  4. Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
  5. 重复上面过程,知道全部旧的worker进程都被关闭掉。
    所以,重启之后,master的进程号不变,worker的进程号会改变。

4.关闭nginx

#进入nginx目录
cd /usr/local/nginx/sbin
# 快速停止nginx
./nginx -s stop
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
./nginx -s quit

5.reopen重新打开日志文件

#进入nginx目录
cd /usr/local/nginx/sbin
# 重新打开日志文件
./nginx -s reopen

当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
一般我们需要两步:

  1. 移走文件并重命名
  2. 利用 nginx 的 reopen 功能,完成新日志文件的生成。
    参考地址,感谢博主分享

二、其他命令重启、关闭nginx

# 查看进程号,下图  master的为主进程号
ps -ef | grep nginx
#从容停止Nginx
kill -QUIT 主进程号
#快速停止Nginx
kill -TERM 主进程号
#强制停止Nginx
pkill -9 nginx
#平滑重启nginx:
kill -HUP 主进程号

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐