nginx504报错排查流程(nginx503报错)
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。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.