环境:

云服务器镜像 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. Python求1000以内所有3或5的倍数的和。

    a=0 for n in range(1,1000): if n%3==0 or n%5==0: a=a+n print(a) 运行结果: 233168

  2. MyBatis(4)——配置文件优化

    配置文件优化 执行流程:读取配置流程->sqlSessionFactory->sqlSession(连接.读取sql并执行相应操作.关闭) a)配置优化:通过中文参考指南的说明可知-> ...

  3. 用synchronized实现互斥锁

    package seday10;/** * @author xingsir * 互斥锁 * 当使用synchronized锁定多个代码片段,并且他们指定的同步监视器对象是同一个时,那么这些代码片段之间 ...

  4. Type Java类型

    参考:https://blog.csdn.net/a327369238/article/details/52621043 Type —— Java类型 Type是一个空接口,所有类型的公共接口(父接口 ...

  5. python中GraphViz's executables not found的解决方法以及决策树可视化

    出现GraphViz's executables not found报错很有可能是环境变量没添加上或添加错地方. 安装pydotplus.graphviz库后,开始用pydotplus.graph_f ...

  6. opencv:轮廓匹配

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  7. Bugku-CTF分析篇-这么多数据包(这么多数据包找找吧,先找到getshell的流)

    这么多数据包 这么多数据包找找吧,先找到getshell的流

  8. drf解析模块,异常模块,响应模块,序列化模块

    复习 """ 1.接口:url+请求参数+响应参数 Postman发送接口请求的工具 method: GET url: https://api.map.baidu.com ...

  9. 一个超几何函数$_3F_2$的积分

    \[\Large\displaystyle \int_0^\infty{_3F_2}\left(\begin{array}c\dfrac58,\dfrac58,\dfrac98\\\dfrac12,\ ...

  10. 吴裕雄 python 机器学习——半监督学习LabelSpreading模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import metrics from sklearn import d ...