nginx重新加载配置文件,配置文件没生效
问题
就是在修改nginx.conf配置文件之后,配置文件没有生效。
解决
1.检查nginx是否开启
cmd输入命令行,检查nginx是否开启
tasklist /fi "imagename eq nginx.exe"
这样就说明开启了
2.关闭nginx,方法有很多
具体命令如下:
(1) 快速停止或关闭nginx:
nginx -s stop
(注意:使用nginx -s stop命令关闭所启动的nginx时,同时会删除logs中的nginx.pid文件)
(2) 完整有序的停止nginx:
nginx -s quit
(注意:使用nginx -s quit命令关闭所启动的nginx时,同时也会删除logs中的nginx.pid文件)
(3) 使用taskkill停止或关闭nginx:
taskkill /f /t /im nginx.exe
(注意:使用taskkill /f /t /im nginx.exe命令关闭所启动的nginx时,不会删除logs中的nginx.pid文件)
我这里是用第三个才有用
3.开启nginx
start nginx.exe
4.重新加载配置
nginx.exe -s reload
最后就生效了
nginx启动,停止和重新加载配置
要启动nginx的,运行可执行文件。一旦nginx的启动时,它可以通过与-s参数调用可执行来控制。使用以下语法
nginx -s signal
其中,信号可以是下列之一:
- stop — fast shutdown
- quit — graceful shutdown
- reload — reloading the configuration file
- reopen — reopening the log files
例如,要停止nginx的过程与等待工作进程完成服务的当前请求,下面的命令可以执行:
nginx -s quit
This command should be executed under the same user that started nginx.
在配置文件中所作的更改不会被应用,直到命令重新配置被发送到nginx的或重新启动。
要重新加载配置,执行:
nginx -s reload
一旦主处理接收到的信号重新加载配置,它检查新的配置文件的语法正确性并尝试应用在其提供的配置。
如果这是一次成功,主进程开始新的工作流程,将消息发送到老的工作进程,要求它们关闭。
否则,主进程回滚的变化,继续与旧的配置工作。旧的工作进程,在接收到命令关闭,停止接受新的连接,并继续服务于当前请求,直到所有的要求提供服务。
在这之后,老工人处理退出。信号也可发送到nginx的与Unix工具的帮助下过程,如杀工具。
在这种情况下,一个信号被直接发送到一个进程与给定的进程ID。
nginx的主进程的进程ID写入,默认情况下,该nginx.pid在目录/ usr /本地/ nginx的/日志或/ var /运行。
例如,如果主进程ID是1628,送造成的nginx的正常关机的信号QUIT,执行
kill -s QUIT 1628
启动nginx:
nginx -c nginx.conf
用于获取所有正在运行的nginx的进程列表,ps工具可以使用,例如,以下面的方式:
ps -ax | grep nginx
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。