环境:

云服务器镜像 Linux CentOS 7.6

已经安装并成功配置 SSL 的 nginx 1.16.1

成功安装并且可以正常运行的 apache-tomcat-9.0.26

遇到的问题: 在服务器没有报错的情况下, 向服务器发送 HTTPS 请求时出现 502 Bad Gateway

问题的前提: 

(1) 在刚刚开始的时候是可以正常访问或请求, 可以接受 HTTP/HTTPS 请求

(2) 一切运行正常, 没有修改 war 包, 代码也无异常

正常情况下, 请求一个正常的接口, 是不可能出现超时现象的, 我的处理方案是

[1] 按照前人的经验, 延长 nginx 的超时时间, nginx 配置如下

http{
  ......
fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
fastcgi_buffer_size 64k;
fastcgi_buffers 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
  ......
  server{
    ......
  }
}

然后关闭 nginx , 再打开

[root@server nginx]#cd /usr/local/nginx/sbin
[root@server sbin]# ./nginx -s quit
[root@server sbin]# ./nginx

然后会发现问题并没有解决, 依然还是 502 Bad Gateway

为什么呢> 因为根本不是请求的时候时间不够用才超时的,  而是我们的服务器出了问题

然后我习惯性的去查 Tomcat 的运行情况, 为什么不查 nginx 呢? 因为它只是一个中转站, 出问题的几率不大, 输入

[root@server nginx]# ps -ef|grep tomcat

看到的结果我震惊了!!!!

root 20179  1 99 14:54 pts/0 00:00:28 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
                          -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
                          -Djdk.tls.ephemeralDHKeySize=2048
                          -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
                          -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
                          -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
                          -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat
                          -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 20178  1 99 14:54 pts/0 00:00:38 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
                          -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
                          -Djdk.tls.ephemeralDHKeySize=2048
                          -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
                          -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
                          -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
                          -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat
                          -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 20177  1 99 14:54 pts/0 00:00:48 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
                          -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
                          -Djdk.tls.ephemeralDHKeySize=2048
                          -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
                          -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
                          -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
                          -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat
                          -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 20215 17425 0 14:54 pts/2 00:00:00 grep --color=auto tomcat

可以看见, 居然有三个Tomcat 的进程在运行中, 我回想起来, 我当时在修改 server.xml 文件, 没有先关掉 Tomcat ,然后在没有关掉 Tomcat 的情况下又打开了一次 Tomcat, 然后发现配置没有生效, 然后关掉 Tomcat (./shutdown.sh) 又再一次打开 Tomcat (./startup.sh), 所以是服务器同时运行着多个 Java 项目, 估计 nginx 也懵逼了, 不知道该把请求给哪一个, 所以, 就超时了

所以, 当出现这种情况,

第一步

ps -ef|grep tomcat

第二步

kill - [pid]        也就是进程号

把多余的进程杀掉, 再重启, 当然上述问题的原理我还没弄清楚, 有空再去研究

当然还有一个可能就是, 你后台没有启动 Tomcat , 服务器上没有运行项目, 这时如果请求目标服务器的话也会出现  502 Bad Gateway

没启动 Tomcat

也是会出现这种问题的

[运维] 请求 nginx 出现 502 Bad Gateway 的解决方案!的更多相关文章

  1. Nginx 显示502 Bad Gateway错误

    今天系统发布到测试环境,有一个用户登录后显示502  Bad Gateway错误,其他的用户都登录成功.但是在开发机链接测试数据库,使用该账号登录成功. 初步猜测是Nginx的问题,查看nginx的错 ...

  2. 企业运维实践-Nginx使用geoip2模块并利用MaxMind的GeoIP2数据库实现处理不同国家或城市的访问最佳实践指南

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 前言 ...

  3. nginx 报 502 bad gateway 分析解决

    出现nginx 502 bad gateway 问题,先从nginx端日志入手,分析排查原因. 1.排查问题 首先需要打开nginx错误日志. 编辑nginx.conf,默认路径在/usr/local ...

  4. nginx报502 bad GateWay错误的解决方法

    nginx+php-fpm+mysql的网站,访问nginx的某个页面,报502 GateWay的错误,一般见到此错误,可以判断是php-fpm的问题,而不是nginx的问题.通过监控nginx的错误 ...

  5. 运维技巧-Nginx日志格式

    1.说一说 当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式. 2.Nginx日志字段 $remote_addr 记录客户端IP,但她的值不是客户端提供的, ...

  6. nginx+php-fpm 502 bad gateway

    输出日志配置: http://blog.csdn.net/wzy_1988/article/details/8486888 解决方案: http://www.cnblogs.com/jackluo/p ...

  7. 运维笔记-----nginx反向代理

    在/opt/nginx 下的配置文件同级建立反向代理的配置文件manager.conf <span style="font-size:18px;">user nobod ...

  8. [运维笔记] Nginx编译安装

    yum -y install pcre-devel.x86_64 yum -y install openssl openssl-devel.x86_64 useradd www -s /sbin/no ...

  9. Kong:Nginx支持的API Gateway管理解决方案

    Kong的主要功能 Kong可灵活扩展:只要增添更多的服务器实例,它就能横向扩展,毫无问题,那样你可以支持更多流量,同时确保网络延迟很短. Kong可在任何地方运行:它可以部署在单个或多个数据中心环境 ...

随机推荐

  1. Spring Boot 2.x基础教程:找回启动日志中的请求路径列表

    如果您看过之前的Spring Boot 1.x教程,或者自己原本就对Spring Boot有一些经验,或者对Spring MVC很熟悉.那么对于Spring构建的Web应用在启动的时候,都会输出当前应 ...

  2. UC972开发板,参考实验8,完成定时器触发信号输出实验

    代码 ETIMER0 TGL --> PB2 #include "nuc970.h" #include "sys.h" #include "et ...

  3. 题解【洛谷P3385】【模板】负环

    题目描述 暴力枚举/\(SPFA\)/\(Bellman-ford\)/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入输出格式 输入格式 第一行一个正整 ...

  4. js 时间格式化工具类

    /** * 返回示例:0 天 4 小时 7 分钟 57 秒 * @param second 毫秒数 * @returns {String} 时间html */ function secondToDay ...

  5. mysql开启远程访问及相关权限控制

    开启mysql远程访问: 授予用户user 密码 passwd 所有权限 所有主机IP可访问 授权语句:Grant <权限> on 表名[(列名)] to 用户 With grant op ...

  6. C\C++改变鼠标样式

    改变鼠标样式可以使用SetClassLong函数 HCURSOR hcur = LoadCursor(NULL, IDC_CROSS); //加载系统自带鼠标样式 HWND hwnd = GetHWn ...

  7. Validation failed for one or more entities. See ‘EntityValidationErrors

    try{ context.SaveChanges(); } catch (DbEntityValidationException ex) { var errorMessages = ex.Entity ...

  8. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  9. java.lang.NoSuchMethodException: com.sun.tools.javac.util.List.<init>()

    主要原因是import jar包的时候import java.util.List;这个,导致错误

  10. OGG在windows环境下字符集的配置

    windows环境下不配置字符集(默认使用windows自己的字符集),从linux等系统同步过来的表中如果含有中文字符列将显示为乱码,被ogg误认为虚拟列,从而导致进程abend. 设置ogg进程在 ...