京美建站官网,聊天app开发需要多少钱,温州建设小学网站首页,网络广告策划公司#x1f389; 前言
前一阵子写了一篇“关于解决调用百度翻译API问题”的博客#xff0c;近日在调用其他API时又遇到一些棘手的问题#xff0c;于是写下这篇博客作为记录。
#x1f389; 问题描述
在代理的遇到过很多错误码#xff0c;其中出现频率最高的就是502#x… 前言
前一阵子写了一篇“关于解决调用百度翻译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/是不一样的以我目前的经验来看一般可以不用加 ’ / ’
差不多就这些。
唉想到一个困扰了我几天的问题就这样被我云淡风轻地写出来不仅感慨文字在情感面前是多么的乏力啊。不过结果还是好的今天就到这里下期见。