环境:

云服务器镜像 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. for each.遍历集合或数组使用

    package seday11; import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Collecti ...

  2. sql注入基础知识

    信息安全概论课堂作业 SQL注入之万能密码漏洞 第一道题是牵扯到了万能密码漏洞 用户名先输入个’ 返回了sql报错语句,猜测存在sql注入漏洞 使用万能密码测试 登陆成功 原理 假设登录框处的判断代码 ...

  3. 关于反射中如何剔除实体类中serialVersionUID字段

    Field[] fields = t.getClass().getDeclaredFields(); //这里为了剔除serialVersionUID Field[] tempArr = new Fi ...

  4. Docker - 命令 - docker image

    概述 docker 客户端操控 镜像 1. 分类 概述 1 简单对 命令 做一些分类 分类 查看 ls inspect history 与 dockerhub 交互 pull push 导出 & ...

  5. 【C语言】将两个字符串连接起来

    #include<stdio.h> int main() { ] = "I "; ] = "am a student"; int i, j, n; ...

  6. STA之OCV

    Timing sign-off Corner = library PVT +RC Corner + OCV 针对每个工艺结点,foundry都会给出一张类似的timing sign-off表格,定义了 ...

  7. centos7下Maven Java selenium3环境搭建

    centos7下Maven Java selenium3环境搭建 一.Jdk安装 我这里用的是open-jdk. [adawang@localhost src]$ sudo yum search op ...

  8. Springboot 中AOP的使用

    面向切面编程(Aspect Oriented Programming) 是软件编程思想发展到一定阶段的产物,是面向对象编程的有益补充.AOP一般适用于具有横切逻辑的场合,如访问控制.事务管理.性能检测 ...

  9. opencv python:图像二值化

    import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑, ...

  10. linux下安装mongo数据库存

    https://www.runoob.com/mongodb/mongodb-linux-install.html 安装完后,要重启一下,否则无法运行./mongod 下载完安装包,并解压 tgz(以 ...