news 2026/10/15 17:42:28

Nginx反向代理出现502 Bad Gateway问题的解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx反向代理出现502 Bad Gateway问题的解决方案
?? 前言

前一阵子写了一篇“关于解决调用百度翻译API问题”的博客,近日在调用其他API时又遇到一些棘手的问题,于是写下这篇博客作为记录。

?? 问题描述

在代理的遇到过很多错误码,其中出现频率最高的就是502,说实话,当时我是在网上找了好久,也一直在问chatgpt,但是收效甚微,依然没什么头绪和进展。网上关于502错误码的原因大致分为两种:网络问题和上游服务器的问题。

网络问题我很快就排查完了,在终端中ping了几个api的域名,都能ping通,也没有包丢失,以我的认知来说,网络连接是没有问题的。

上游服务器问题,嗯,这个该怎么解决呢?我突然想到可以查看nginx错误日志(想到这里其实是非常惭愧的,竟然这么久才想到从这一点下手,太不专业了),于是发现这样一段报错:

(SSL: error:0A000438:SSL routines::tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 127.0.0.1, server: uapis.cn

于是我将这段日志前面加上一个nginx,即:

nginx (SSL: error:0A000438:SSL routines::tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 127.0.0.1, server: uapis.cn

然后直接放在Google里面搜索,第一条就是stack overflow的回复帖子,点进去看了一下,还真被我发现了一些有用的东西,尽管问题场景可能跟我不一样,但报错几乎一模一样,里面的答主都给出了一个非常一致的回答,在代理中添加这么一句:

proxy_ssl_server_name on;

后来又去中文社区搜了一下,找了一段解释,摘抄如下:

由于网站启用了 SNI , Nginx反代默认没有加入 SNI proxy_ssl_server_name on; ,Nginx 无法成功 handshake 上游的 SSL , 导致 502 Bad Gateway.

?? 新的问题

我将这条配置语句加入到我的配置文件中,重启nginx,点击代理地址,结果熟悉的502不见了,取而代之的是一个陌生的404页面,为什么说陌生呢,有图为证:

我觉得这很有可能说明配置起作用了,只不过又有新的问题亟待解决,我仔细审查了我的配置文件之后,感觉有一处可以改动,这在我之前那篇博客里面也提到过,但这次不是重定向问题,于是我抱着试一试的心态修改了此处配置,修改如下:
从:

proxy_set_header Host $host;

更改为

proxy_set_header Host findmyip.net

也就是将$host替换成了具体的域名。

结果尝试了一下,竟然真的成功了!此时此刻我的心情只能用欣喜若狂来形容。

?? 补充

在这之前,我还尝试过其他解决方法,虽然没有起到什么作用,但是也在这里记录下来,作为补充,读者看到了或许也能有所启发:

  1. resolver 8.8.8.8; # Google DNS 服务器,作为域名解析

  2. ssl_protocols TLSv1.2 TLSv1.3; # 指定TLS协议

  3. proxy_ssl_verify off; # 禁用 SSL 证书验证(如果需要)

  4. if ($request_method = OPTIONS) {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods “GET, POST, OPTIONS”;
    add_header Access-Control-Allow-Headers “Authorization,Content-Type”;
    return 204;
    } #处理option请求

  5. proxy_buffer_size 16k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_connect_timeout 300s;
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;

  6. server_name和端口号

  7. ’ / ’ 问题,比如location /getpic和location /getpic/、以及proxy_pass https://example.com和proxy_pass https://example.com/是不一样的,以我目前的经验来看,一般可以不用加 ’ / ’

差不多就这些。

唉,想到一个困扰了我几天的问题就这样被我云淡风轻地写出来,不仅感慨文字在情感面前是多么的乏力啊。不过结果还是好的,今天就到这里,下期见。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 5:22:11

Nginx之rewrite重写功能

目录 一、rewrite概述 1、rewrite功能 2、跳转场景 二、标准配置指令 1、rewrite日志记录指令 2、未初始化变量告警日志记录指令 3、rewrite 指令 3.1 正则表达式 三、rewrite模块使用实例 1.基于域名的跳转 2.基于客户端 IP 访问跳转 3.?基于旧域名跳转到新域名后…

作者头像 李华
网站建设 2026/10/15 15:32:49

arduino寻迹小车小白指南:轻松融入机器人课堂

从零开始做一辆“会思考”的小车:Arduino寻迹项目实战教学你有没有试过,写几行代码,就能让一个小车自己沿着黑线跑起来?不是遥控,也不是预设轨道——它真的能“看”路、“判断”方向,甚至在转弯时微微调整速…

作者头像 李华
网站建设 2026/10/15 14:01:40

【MiniMax】基于FastAPI + LangGraph + LLM大语言模型的通用Agent多智能体系统

基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用 文章目录 基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用 内容简介 第一部分:理论基础与技术栈概览 第1章 从大语言模型…

作者头像 李华
网站建设 2026/10/15 17:08:56

vivado2022.2安装全流程图文并茂的系统学习资料

Vivado 2022.2 安装实战全攻略:从零搭建高效 FPGA 开发环境 你是否曾因为 Vivado 安装失败而耽误项目进度?是否在下载器卡在 0% 时束手无策?又或者,好不容易装上了却提示“License Checkout Failed”? 别担心&#x…

作者头像 李华
网站建设 2026/10/15 10:11:06

STM32 GPIO控制有源蜂鸣器操作指南

蜂鸣器也能玩出花?用STM32一个GPIO口搞定报警提示音你有没有遇到过这样的场景:调试一块新板子,上电后啥反应都没有——LED不闪、屏幕不亮、串口没输出。这时候要是有个“滴”一声的启动音,至少能告诉你:芯片是活的&…

作者头像 李华
网站建设 2026/10/15 10:02:33

核谱回归(Kernel Spectral Regression)算法详解与MATLAB实现

核谱回归(Kernel Spectral Regression)算法详解与MATLAB实现 在机器学习和数据降维领域,谱回归(Spectral Regression, SR)是一种高效的子空间学习方法,它通过将传统的谱嵌入问题转化为一系列回归问题,大大降低了计算复杂度。当数据分布复杂、呈现非线性结构时,我们常常…

作者头像 李华