2019独角兽企业重金招聘Python工程师标准>>>

出现502 bad gateway错误的原因

1.php-fpm进程数不够用
2.Linux内核打开文件数量小
3.脚本执行时间超时
4.缓存设置比较小

网站间歇性出现502,第一反应不是程序的问题,而是nginx服务器的问题,因为这是代理服务器出现的问题,代理服务器并没有安装php 排除第一中情况。

于此想到的是可能是超时,所以我把超时修改了一些
一下是服务器原配置(重点配置)

http部分

server_names_hash_bucket_size 64;
client_header_buffer_size 128k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;

keepalive_timeout 60;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 60;
fastcgi_read_timeout 600;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

gzip_buffers 4 128k;

server部分

upstream myweb {
server 10.10.10.1:80 max_fails=3 fail_timeout=30s;
server 10.10.10.2:80 max_fails=3 fail_timeout=30s;
ip_hash;
}

location / {
proxy_pass http://myweb;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}

第一步修改超时 只改了http部分 缓冲基本上都加了几倍

server_names_hash_bucket_size 512;
client_header_buffer_size 512k;
large_client_header_buffers 16 128k;
client_max_body_size 256m;

keepalive_timeout 600;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 512k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 1024k;

gzip_buffers 16 512k;

观察nginx出现502的频率并没有下降,还是和以前一样

第二步修改server代理服务超时

location / {
proxy_pass http://myweb;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;

proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;

}

观察nginx502的频率有一点下降,没有达到预期效果于是更改代理的缓冲区

location / {
proxy_pass http://myweb;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_redirect off;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_buffer_size 512k;
proxy_buffers 32 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
proxy_ignore_client_abort on;

}

观察nginx502的频率和刚才一样,并没有明显效果。打开nginx的错误日志,观察错误状态,nginx错误日志显示

[error] 20435#0: *3890606 no live upstreams while connecting to upstream, client:

意思是nginx发现没有存活的后端了,后端有两台服务器,这怎么可能

猜想nginx在等待后端服务器返回的时候做了判断,如果后端服务器响应慢就有可能踢掉后端服务器,因此就可能把后端的两台服务器都踢掉

所以问题是出在 upstream 配置,原来配置中的max_fails=3 fail_timeout=30s;是默认的配置

我尝试修改 max_fails=10 fail_timeout=60s; 观察nginx出现502的频率下降了很多,但是如果出现502就时间比较久。以下是upstream最终配置

upstream myweb {
server 10.10.10.1:80 max_fails=60 fail_timeout=10s;
server 10.10.10.2:80 max_fails=60 fail_timeout=10s;
ip_hash;
}

接下来可能的优化 调高调高linux内核打开文件数量备注一下

echo ‘ulimit -HSn 65536′ >> /etc/profile
echo ‘ulimit -HSn 65536′ >> /etc/rc.local
source /etc/profile

转载于:https://my.oschina.net/slagga/blog/1593602

网站出现502 BAD GATEWAY的解决办法相关推荐

  1. 网站出现 502 Bad Gateway 怎么解决?

    为什么80%的码农都做不了架构师?>>>    打开某网站出现一个问题如下图(这里就不说是哪个网站了),那么下面就针对这个问题分享下解决思路. 1.什么是 502 badgatewa ...

  2. nginx 502错误原因和解决办法总结

    nginx 502错误原因和解决办法总结 一.NGINX 502错误排查 二.Nginx 413错误的排查:修改上传文件大小限制 三.Nginx 400错误排查:HTTP头/Cookie过大 一.NG ...

  3. 发现网站被劫持该怎么办?网站域名劫持的情况及解决办法

    什么是网站劫持? 网站劫持是指本想打开某个网站的时候,却被拦截跳转到另一个网站页面,或者出现一个不属于此网站的广告. 网络劫持有什么危害? 1.用户输入网址后却跳转到其他页面,用户无法正常访问,从而导 ...

  4. 502 宝塔 部署tomcat_宝塔面板网站出现502 Bad Gateway问题几个排查解决方案

    今天早上有看到群友在询问自己的1G1M服务器搭建的宝塔面板网站还没有访问量,为什么会经常出现"502 Bad Gateway"这样的错误问题,是不是服务器配置比较低,是否需要升级带 ...

  5. 工信部备案网站打不开的临时解决办法

    2010年03月01日 星期一 23:00 好多天了,工信部备案网站一直打不开,我们这边无论是电信.联想还是移动,额的那个神,备案的网站都打不开,如何备案? 据说有的地方可以打开,使用在线代理过去可以 ...

  6. 分享导致网站被K的原因及解决办法

    相信很多站长都遇到过这样的情况,某天自己网站关键词排名和收录突然暴跌,其实这时可能就要看看是不是网站被K了,判断方法可以看懒猫之前写的文章:南京seo:怎么看出网站首页是否被搜索引擎降权呢,如果被K了 ...

  7. win7 php乱码,打开网站php出现乱码问题的解决办法nsiserror解决办法win7黑屏解决办法龙之谷报错解决办...

    问题:用浏览器打开写好的php文件,然后发现中文字符显示为问号,网站显示不正常 原因:出现乱码的问题的原因是数据库,浏览器和php文件采用的编码方式不相同 解决办法: 1.浏览器编码方式修改:(以谷歌 ...

  8. 打开网站服务器显示403,网站服务器返回状态码403解决办法

    网站服务器返回状态码403解决办法 [2020-09-05 06:10:52]  简介: HTTP状态码大全 2020-08-27 建站服务器 200 – 服务器成功返回网页 404 – 请求的网页不 ...

  9. 502 bad gateway是什么意思?502 bad gateway怎么解决!

    您可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求 ...

  10. 502 Bad Gateway 怎么解决?

    1.什么是502 badgateway 报错 简单来说 502 是报错类型代码,bad gateway 错误的网关. 2.产生错误的原因 连接超时 具体原因: (1)请求端向服务器发送请求 由于服务器 ...

最新文章

  1. pythongui界面实例带注释_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...
  2. IT界顶级大咖讲解如何获得月薪5万以上的秘诀干货!
  3. git分支指的是_你一定知道的Git分支模型
  4. 浙江财经大学java试卷_2020年浙江财经大学社会保障考研真题试卷及试题答案,管理学考研试题下载...
  5. Protobuf从安装到配置整理帖
  6. delphi xe http 收不到反馈消息_好消息接二连三!苹果将在双·11当天举办发布会_笔记本新闻...
  7. 木马捆绑器设计思路和源码
  8. JavaScript入门(part10)--作用域
  9. ffmpeg和opencv 播放视频文件和显示器
  10. object类型replace掉$、转换成float、运算
  11. Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别---转
  12. CrossApp V1.0.2 正式推出,优化众多内容/更加稳定
  13. Matlab快速导入数据文件
  14. python实战项目词云生成器(wordcloud+jieba+pyinstaller打包)——词云生成软件【Pyinstaller打包问题解决】
  15. 微信PC端不显示头像和表情怎么解决
  16. 基于阿里云生态构建网聚宝业务监控系统
  17. 32岁了学python来的及吗_你要悄悄的学Python,然后惊艳所有人,后来都学的怎么样呢?...
  18. 针对小游戏的激励视频,如何通过数据分析提升广告收入
  19. 剑网3指尖江湖快速升级攻略 悄悄抱走月儿
  20. VR全景--720全景 助力行业数字化新模式

热门文章

  1. 怎么看xp计算机mac地址,查找MAC地址的两种方法
  2. Tensorflow - 训练中出现 Nan 值
  3. ansys linux卸载干净,怎么把ansys删除干净
  4. tensorboard侧视_如何调整侧视/后视镜(以及为什么需要3台显示器)
  5. grunt,gulp
  6. 全球与中国冲压空气涡轮行业调查与未来发展趋势研究报告
  7. 俄罗斯方块Tetris Beat for Mac(休闲益智游戏)
  8. Django 入门:tests.py
  9. 【GD32F310开发板试用】利用I2C接口通过温湿度传感器HDC1080读取当前环境温湿度
  10. python如何更改背景颜色_python背景颜色,python改背景色