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
替换成了具体的域名。
结果尝试了一下,竟然真的成功了!此时此刻我的心情只能用欣喜若狂来形容。
🎉 补充
在这之前,我还尝试过其他解决方法,虽然没有起到什么作用,但是也在这里记录下来,作为补充,读者看到了或许也能有所启发:
-
resolver 8.8.8.8; # Google DNS 服务器,作为域名解析
-
ssl_protocols TLSv1.2 TLSv1.3; # 指定TLS协议
-
proxy_ssl_verify off; # 禁用 SSL 证书验证(如果需要)
-
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请求 -
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; -
server_name和端口号
-
’ / ’ 问题,比如
location /getpic
和location /getpic/
、以及proxy_pass https://example.com
和proxy_pass https://example.com/
是不一样的,以我目前的经验来看,一般可以不用加 ’ / ’
差不多就这些。
唉,想到一个困扰了我几天的问题就这样被我云淡风轻地写出来,不仅感慨文字在情感面前是多么的乏力啊。不过结果还是好的,今天就到这里,下期见。
相关文章:

Nginx反向代理出现502 Bad Gateway问题的解决方案
🎉 前言 前一阵子写了一篇“关于解决调用百度翻译API问题”的博客,近日在调用其他API时又遇到一些棘手的问题,于是写下这篇博客作为记录。 🎉 问题描述 在代理的遇到过很多错误码,其中出现频率最高的就是502&#x…...

通信工程学习:什么是VLAN虚拟局域网
VLAN:虚拟局域网 VLAN(Virtual Local Area Network,虚拟局域网)是一种将物理局域网在逻辑上划分成多个广播域的通信技术。以下是关于VLAN的详细解释: 一、VLAN虚拟局域网的定义与概述 VLAN通过逻辑方式将网络中的设备…...
python qt5 常用
QT5中如何设置让窗口根据屏幕比例显示设置? desktop QDesktopWidget().screenGeometry() self.resize(int(desktop.width() * 0.3), int(desktop.height()*0.5)) QT5中关于背景穿透问题的处理方式? 场景如下:我们在开发的时候,…...

漏洞复现_永恒之蓝
1.概述 永恒之蓝(EternalBlue)是一个影响Windows操作系统的远程代码执行漏洞,编号为CVE-2017-0144,最初由美国国家安全局(NSA)开发并利用,后来被黑客组织Shadow Brokers泄露。该漏洞存在于SMBv…...

PyCharm的使用
PyCharm的入门使用教程 下载和安装PyCharm: 首先,访问JetBrains官方网站(https://www.jetbrains.com/pycharm/)下载PyCharm的最新版本。根据您的操作系统选择合适的版本进行下载。 安装完成后,打开PyCharm。 创建新…...
浅谈C#之AutoResetEvent和ManualResetEvent
一、基本介绍 AutoResetEvent和ManualResetEvent都是同步原语,它们用于线程之间的协调和通信。它们都是从EventWaitHandle类派生的,但它们在重置事件状态的行为上有所不同。 二、简单示例 AutoResetEvent AutoResetEvent是一个自动重置的事件。当一个线…...

【网络安全 | 靶机搭建】修改镜像源、更新软件源、安装git、更改python版本等
文章目录 0x00、必要准备0x01、修改镜像源0x02、更新软件源并清除缓存0x03、安装git0x04、更改默认Python版本为python30x05、安装增强功能0x06、vmware虚拟机导出iso0x00、必要准备 安装虚拟机时必须保存用户名、密码,用于后续操作,可以截图保存: 以下内容按个人需要进行配…...

VuePress搭建文档网站/个人博客(详细配置)主题配置
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
Go语言笔记
目录 一、变量声明 二、流程控制 if(条件判断) for(循环结构) Switch(简化if) goto(跳出循环) 三、运算符 1、算数运算符 2、关系运算符 3、逻辑运算符 4、位运算符 5、…...

java缓存介绍
在Java编程中,缓存技术是一种非常有效的优化手段,用于减少数据访问的延迟和提高应用性能。缓存技术通过存储数据的副本在内存中,使得后续对相同数据的请求能够直接从内存中快速获取,而不需要再次进行耗时的磁盘访问或网络请求。 缓…...
react中diff的选择性子树渲染
在React中,组件的渲染是高效的,这得益于React的虚拟DOM(Virtual DOM)和diff算法。React的diff算法主要用于比较旧虚拟DOM树和新虚拟DOM树之间的差异,并仅更新实际DOM中需要变化的部分,从而提高性能。 关于…...
Git clone远程仓库没有其他分支的问题
在使用Git克隆(Git clone)时,可能遇到分支不全的问题。有以下几种可能的原因和解决方法: 未将所有分支克隆下来:默认情况下,Git只会克隆远程仓库的主分支。如果您想要克隆其他分支,可以使用以下…...

山东潍坊戴尔存储服务器维修 md3800f raid恢复
山东戴尔存储故障维修 存储型号:DELL PowerVault md3800f 故障问题:存储除尘后通电开机,发现有物理硬盘没有插到位,用户带电拔插了多块物理盘,导致关连的磁盘阵列掉线,卷失败; 处理方式…...

Hive企业级调优[6]——HQL语法优化之任务并行度
目录 HQL语法优化之任务并行度 优化说明 Map端并行度 Reduce端并行度 优化案例 HQL语法优化之任务并行度 优化说明 对于分布式计算任务来说,设置一个合理的并行度至关重要。Hive的计算任务依赖于MapReduce框架来完成,因此并行度的调整需要从Map端和…...

Excel 冻结多行多列
背景 版本:office 2021 专业版 无法像下图内某些版本一样,识别选中框选的多行多列。 如下选中后毫无反应,点击【视图】->【冻结窗口】->【冻结窗格】后自动设置为冻结第一列。 操作 如下,要把前两排冻结起来。 选择 C1&a…...

基于微信小程序的智慧物业管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection
原文链接:https://arxiv.org/pdf/2312.01696 简介:最近,在摄像头3D目标检测任务中,基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力,能全面精确地描绘3D场景。本…...
基于open-gpu-kernel-modules的p2p vram映射bar1提高通信效率
背景 bar1 Base Address Register 1 用于内存映射的寄存器,定义了设备的内存映射区域,BAR1专门分配给gpu的一部分内存区域,允许cpu通过pcie总线直接访问显存VRAM中的数据。但bar1的大小是有限的,在常规的4090上,bar1只…...

java之斗地主部分功能的实现
今天我们要实现斗地主中发牌和洗牌这两个功能,该如何去实现呢? 1.创建牌类:52张牌每一张牌包含两个属性:牌的大小和牌的花色。 故我们优先创建一个牌的类(Card):包含大小和花色。 public class Card { //单张牌的大小及类型/…...

我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪
本教程基于自研的AI工具箱Tauri版进行VideoIntroductionClipCut视频介绍混剪。 本项目为自研的AI工具箱Tauri版中的视频剪辑模块,专注于自动生成视频介绍片段。该模块名为 VideoIntroductionClipCut,用户可以通过该工具快速进行视频的混剪和介绍内容的生…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...