当前位置:首页 > 教程 > 正文内容

nginx504报错排查流程(nginx503报错)

2023-05-11 01:30:06教程1

nginx504报错排查流程

确实打不开,可能网站的服务器在维护,也可能是网站nginx默认的fastcgi进程响应的缓冲区太小造成的,反正我尝试了几次都是504 Gateway Time-out

属于暂时的网络阻塞,换个时间再登录

换个游览器试试

换个浏览器试试

也许是网络在维护

nginx503报错

只有针对的错误吗如404,501,502,503等。

nginx报504错误

这是由于服务器端的配置出现了状况,平时也很少见到。

具体解决法就是修改配置文件:1、把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

2、接着再更改nginx的几个配置项,减少FastCGI的请求次数,尽量维持buffers不变:fastcgi_buffers由464k改为2256k;fastcgi_buffer_size由64k改为128K;fastcgi_busy_buffers_size由128K改为256K;fastcgi_temp_file_write_size由128K改为256K。

nginx502报错

Nginx返回502代表的是服务器接收到了一个无效的请求,无法完成处理。可能的原因有:

1、反向代理服务器没有及时响应;

2、应用服务器连接延时、超时或者崩溃;

3、Nginx自身内部出现错误。

nginx500报错

这说明监控端的网络连接出现中断,需要尝试硬件重新安装

nginx502错误原因解决方法

第一种:Nginx自己的错误页面

Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?

看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

}

# 定义错误页面码,如果出现相应的错误页面码,转发到那里。

error_page 404 403 500 502 503 504 /404.html;

# 承接上面的location。

location = /404.html {

# 放错误页面的目录路径。

root /usr/share/nginx/html;

}

}

第二种:反向代理的错误页面

如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

upstream www {

server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .* http://www.test.com/index.html redirect;

}

# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass http://www;

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

}

第三种:Nginx解析php代码的错误页面

如果后端是php解析的,需要加一个变量

在http段中加一个变量

fastcgi_intercept_errors on就可以了。

指定一个错误页面:

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

指定一个url地址:

error_page 404 /404.html;

error_page 404 = http://www.test.com/error.html;

nginx502问题排查

我常在Nginx服务器上发现502错误,很多情况下并非Nginx本身的问题。就以Nginx+PHP+MySQL这种架构说明。Nginx本身设置等cgi接口返回的数据延时太短,要延长这个时间。

如同前面说的,很多情况下并非Nginx本身的问题,这样操作后常常并不能缓解问题。

此时,就要考虑对应cgi接口的配置,比如 php-fpm.conf 的配置,脚本执行时间的超时情况限制。

这可以通过跟踪php-fpm的 slow log 来排查,对相关代码优化,减少延时。

另外很大的问题在MySQL数据库这一块,如果数据库执行命令超时也会大延长php脚本的执行时间,导致 Nginx 等待超时。

可以my.cnf的 slow log进行确认效能低下的sql语句是哪些,进行优化配置。

通过优化 php-fpm 及 MySQL的配置都大大减少Nginx的等待超时的情况。以上是LNMP的架构为例进行说明。

nginx504错误原因

你可适当调大 nginx 和 tomcat 之间的 timeout 参数值 504 错误是 tomcat 的程序处理不过来了,跟 nginx 没关系,检查你的程序吧,肯定会低效率的地方

nginx504错误

这是由于服务器端的配置出现了状况,平时也很少见到。具体解决办法就是修改配置文件:

1、把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

2、接着再更改nginx的几个配置项,减少fastcgi的请求次 数,尽量维持buffers不变:fastcgi_buffers由 4 64k 改为 2 256k;fastcgi_buffer_size 由 64k 改为 128k;fastcgi_busy_buffers_size 由 128k 改为 256k;fastcgi_temp_file_write_size 由 128k 改为 256k。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98832068.html