提示:我的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 命令加载修改后的配置文件,命令下达后发生如下事件

Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)Nginx启动新的worker进程,采用新的配置文件Nginx将新的请求分配新的worker进程Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程重复上面过程,知道全部旧的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 无法生效也就无法完成我们想要的文件分隔。 一般我们需要两步:

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

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

# 查看进程号,下图 master的为主进程号

ps -ef | grep nginx

#从容停止Nginx

kill -QUIT 主进程号

#快速停止Nginx

kill -TERM 主进程号

#强制停止Nginx

pkill -9 nginx

#平滑重启nginx:

kill -HUP 主进程号