nginx 重启(Nginx工作进程未正常重启带来的问题)

:暂无数据 2026-08-18 07:30:02 :0

nginx 重启(Nginx工作进程未正常重启带来的问题)

本篇文章给大家谈谈nginx 重启,以及Nginx工作进程未正常重启带来的问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

Nginx工作进程未正常重启带来的问题

        公司新上线了一个系统,通过Nginx进行反向代理,系统上线后,偶尔有请求出现请求找不到,响应 404 的问题。仅新系统会出现该问题,以前部署的系统没有;错误的请求随机出现,并不固定为某个特定的请求地址。Nginx部分配置如下:

        跟踪日志发现无论全局错误日志还是新系统错误日志中,都没有对应记录,新系统访问日志中只有正常请求的记录,没有错误的记录。错误请求只有在全局访问日志文件中才有记录。最终在查看Nginx进程状态时,竟发现多了4个工作进程。

        仔细观察发现多出来的进程是很久以前启动的了,执行 nginx -s reload 命令,异常进程也不会终止,于是猜测错误请求是由异常的进程在处理,而异常的进程是很久以前启动的,并没有加载新系统的配置文件,导致报错,同时这也是为什么错误记录只存在全局访问日志中的原因。 kill 掉异常进程后,果然没有再出现 404 的问题了。

        至于Nginx进程出现异常的原因我就没有再深究了,网上有人不建议使用 nginx -s reload 命令重启nginx,有时候会无效,公司Nginx在不久做过升级,或许是升级操作不当导致的也说不定。

nginx启动,重启,重新加载,以及前缀路径设置

命令行里对nginx操作都需要运行nginx安装目录下的 sbin/nginx,默认会放在 /usr/local/openresty/nginx/sbin 目录下,如果不是openresty里装的nginx,应该就是没有openresty这一层目录的位置
这个路径比较长,所以一般会把它配在环境变量里

之后就可以在任意目录下直接使用nginx命令了,但是这种方法在关闭窗口后就没有用了。
修改环境变量有多种方法,这里贴个别的博客的 链接 ,写的比较详细
我这里使用了修改/etc/profile的方法,修改后,重启,对所有用户都生效

但是一般来说,我们肯定是需要启动我们自己编写的nginx.conf,所以需要在启动的时候指定nginx.conf的位置

这样写的话必须写绝对路径,写相对路径会被拼接到/usr/local/。。。的nginx默认路径后面去,肯定就找不到nginx.conf了,就报错了。同时在nginx.conf文件中的一些东西也必须写绝对路径,例如我写个content_by_lua_file,后面的路径也不能是相对路径
这是因为没有指定前缀路径,就会使用默认的前缀路径,导致所有相对路径都出现问题,通过 -p指定路径,这样就可以愉快地写相对路径啦

修改了文件后,需要让nginx加载这些修改了的信息,可以通过重启nginx的方式,但是nginx也可以不重启,直接重新加载这些内容

当然也可以查找nginx的进程号,再用kill 指令向它发送消息,实现让它停止,重启,重加载等等。

nginx重启出现问题记录(nginx重启 failed (98: Address already in use))

nginx新加了新的端口服务配置后,进行了重启。
在执行./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命令。

***隐藏网址***

服务重启后nginx请求排队

1、可能nginx服务卡死了,导致端口占用,出现此现象使用命令netstat-ntpl来查看当前正在占用的端口情况。
2、PHP的内存不足,会出现服务重启后nginx请求排队。

nginx平滑重启

1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里面找master进程,它的编号就是主进程号了

2.如果更改了配置就要重启Nginx,要先关闭Nginx再打开?这样会影响正常业务,其实可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 主进称号

修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器正常运行。
判断Nginx配置是否正确的命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
nginx -t -c /etc/nginx/conf.d/nginx.conf 根据实际配置文件路径

重启nginx会清除缓存吗

不会。nginx重启无法清除反向代理的缓存,可以清空安装目录下的proxy_cache文件夹里的内容来清除。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强。

树莓派重启nginx失败

1.首先查看nginx.conf文件查看pid对应的目录是否存在;
2.若目录不存在则创建目录并且包含pid文件
3.执行ps -ef |grep nginx 把主进程号保存到nginx.pid文件
问题解决,重启成功,需要注意的是:这种操作只能执行一次,因为nginx重启的时候会将nginx.pid文件删除了,导致下次重启的时候,重新出现上述问题。比较好的解决方案是:使用systemctl start nginx 后续重启都基于
systemctl restart nginx.

nginx重启-s和-c的区别

nginx重启-s和-c直接重启和保存后重启的区别。nginx-sreload平滑的重启。配置重载。nginx工作中,包括一个master进程,多个worker进程。c:使用指定的配置文件而不是conf目录下的nginx.conf。-s:reload重载。

centos7 下 nginx 启动,关闭,重启配置

打开这个教程: 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工作进程未正常重启带来的问题的介绍到此结束,希望对大家有所帮助。

nginx 重启(Nginx工作进程未正常重启带来的问题)

本文编辑:admin

更多文章:


mariadb忘记密码(mysql用户密码忘记了怎么办)

mariadb忘记密码(mysql用户密码忘记了怎么办)

大家好,mariadb忘记密码相信很多的网友都不是很明白,包括mysql用户密码忘记了怎么办也是一样,不过没有关系,接下来就来为大家分享关于mariadb忘记密码和mysql用户密码忘记了怎么办的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月15日 07:50

mysql端口号(如何查看自己数据库的端口号)

mysql端口号(如何查看自己数据库的端口号)

“mysql端口号”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看mysql端口号(如何查看自己数据库的端口号)!

2026年10月15日 06:30

printf打印16进制(C语言 十六进制怎么输出)

printf打印16进制(C语言 十六进制怎么输出)

大家好,今天小编来为大家解答以下的问题,关于printf打印16进制,C语言 十六进制怎么输出这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 06:00

avantage怎么设置为中文(Avantage安装丢失GIT)

avantage怎么设置为中文(Avantage安装丢失GIT)

大家好,如果您还对avantage怎么设置为中文不太了解,没有关系,今天就由本站为大家分享avantage怎么设置为中文的知识,包括Avantage安装丢失GIT的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月15日 03:00

ospf协议的作用是什么(OSPF路由协议的作用是什么)

ospf协议的作用是什么(OSPF路由协议的作用是什么)

“ospf协议的作用是什么”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看ospf协议的作用是什么(OSPF路由协议的作用是什么)!

2026年10月15日 02:40

方案对比特效js(在一个网页中如何实现两个JS特效)

方案对比特效js(在一个网页中如何实现两个JS特效)

各位老铁们好,相信很多人对方案对比特效js都不是特别的了解,因此呢,今天就来为大家分享下关于方案对比特效js以及在一个网页中如何实现两个JS特效的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月15日 02:10

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

今天给各位分享登陆视频监控网页时提示activex控件未注册,怎么解决的知识,其中也会对登陆视频监控网页时提示activex控件未注册,怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:30

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

今天给各位分享用C语言编程学生信息管理系统!的知识,其中也会对用C语言编程学生信息管理系统!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:20

excel连接sql数据库教程(excel怎么连接sql数据库)

excel连接sql数据库教程(excel怎么连接sql数据库)

本篇文章给大家谈谈excel连接sql数据库教程,以及excel怎么连接sql数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月14日 19:40

null s brawl(null和空字符有区别吗)

null s brawl(null和空字符有区别吗)

今天给各位分享null和空字符有区别吗的知识,其中也会对null和空字符有区别吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 19:00

最近更新

热刺vs马赛比赛(热刺赛程比分)
2026-10-15 09:10:01 浏览:0
热门文章

标签列表