在执行./nginx_control start 之后出现如下错误:
nginx重启 failed (98: Address already in use)
执行./nginx_stop之后再重启也没用
可能原因:可能nginx服务卡死了,导致端口占用,出现此错误
使用命令netstat -ntpl 来查看当前正在占用的端口情况,如下所示
使用命令killall -9 nginx
然后再执行./nginx_control restart 即可
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
各个参数含义:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.HTML
打开这个教程: EA82.COM
启动 nginx
systemctl start nginx
一旦 nginx 启动后,就可以用nginx -s signal 命令来接管
快速关闭 nginx
nginx -s stop
平滑的关闭 nginx
nginx -s quit
重启 nginx
nginx -s reload
分割日志
nginx -s reopen
nginx 的工作原理
nginx 有一个 master 进程(老板)和多个 worker 进程(工人),master 进程负责阅读和评估配置,给 worker 进程提供保障,worker 进程实际处理请求。
nginx -s reload 命令加载修改后的配置文件, 命令下达后发生如下事件
Nginx 的 master 进程检查配置文件的正确性,若是错误则返回错误信息,nginx 继续采用原配置文件进行工作(因为 worker 未受到影响)
Nginx 启动新的 worker 进程,采用新的配置文件
Nginx 将新的请求分配新的 worker 进程
Nginx 等待以前的 worker 进程的全部请求已经都返回后,关闭相关 worker 进程
重复上面过程,直到全部旧的 worker 进程都被关闭掉。
nginx -s quit命令关闭 nginx 服务时,nginx 服务要等待工作进程将当前请求处理完才关闭。
也可以用 kill 命令杀死指定进程号的 nginx 进程
先通过 /var/run/nginx.pid 文件查看 nginx master 进程进程 id,
或者通过ps -ax|grep nginx查看进程
在使用kill -s quit 进程号 杀死进程
nginx 服务器重启命令,关闭nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)