夸克之书

  • 首页
  • 科普
  • 笔记
  • C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. 默认
  3. 正文

Nginx反向代理Frp HTTPS访问时报502 Bad Gateway

2020-07-08 1406点热度 0人点赞 0条评论

在使用Nginx反向代理Frp时,通过HTTPS访问报“502 Bad Gateway”

Nginx反向代理Frp HTTPS访问时报502 Bad Gateway插图

首先给出解决办法:

第一种是将frp中映射的https类型修改为tcp类型,然后nginx反代时,填写https://127.0.0.1:映射的TCP端口。

比如要映射的内网服务器上面的HTTPS服务,但是直接配置HTTPS类型的映射后Nginx反代会提示“502 Bad Gateway”,此时将映射类型修改为TCP即可,需要注意的是,tcp类型的映射需要填写外部端口,而在nginx的反向代理配置中也学要填写的映射的外部端口。

第二种是使用http映射,然后nginx反向代理https到http。

分析:

最开始我判断是nginx的问题,因为使用frp映射后,通过映射的端口是可以直接访问的。查看nginx后发现报以下错误:

2020/07/08 11:06:36 [error] 22845#0: *3 peer closed connection in SSL handshake while SSL handshaking to upstream, client: xx.xx.xx.xx, server: xxx.xxx.xxx, request: "GET / HTTP/2.0", upstream: "https://127.0.0.1:4433/", host: "xxx.xxx.xxx"

搜索后判断可能是证书或者域名的问题,但是反复检查证书和反向代理host配置后没有发现问题,并测试了其它域名https反向代理正常(nginx到.net core web服务)。然后我估计是frp出现问题,于是查看frp日志。

frps[1153]: 2020/07/08 11:13:20 [W] [vhost.go:139] get hostname from http/https request error: Unknow error

看到frp无法获取hostname??此时我就比较纳闷了,在nginx反代时,传递了hostname,frp还无法获取?反正这个时候是懵逼了的,经历了各种折腾无果。最后突然想到,https走的是tcp协议,直接反代tcp协议是否可行。遂把映射类型修改为tcp,测试后居然可以正常访问。

个人估计是https加密了host信息,frp无法获取?但是hostname nginx是传递给了frp了呀?由于没有深入研究过nginx和frp,也只能做简单的分析。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020-12-13

Afirefish

夸克之内,别有洞天

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Afirefish

夸克之内,别有洞天

搜索文章
分类目录
  • C# (28)
  • Linux (3)
  • 树莓派 (13)
  • 物联网 (19)
  • 科普 (4)
  • 笔记 (30)
  • 默认 (44)
最新 热点 随机
最新 热点 随机
树莓派PWM风扇控制 PVE重启后LVM Thin数据丢失,错误:Volume group "****" has insufficient free space (128 extents): 4048 required. OpenWrt配置SmartDNS OpenWrt x86安装Frpc Intel网卡开机显示Initializing Intel(R) Boot Agent GE v1.5.50 IdentityServer4证书创建 免费本地解析域名(locallocal.cn),支持HTTPS 使用淘宝npm以及安装cnpm
Steam饥荒专用服务器搭建你见过哪些有趣的代码?修改PostgreSQL数据库默认用户postgres密码在VS Code开发Arduino项目Error response from daemon: cannot stop container: ******: Cannot kill container *******:.....单机Docker搭建FastDFSC# Json序列化时将长整型(long)属性序列化为Json字符串使用淘宝npm以及安装cnpm
这10本物理科普书籍,足以回答你的N多问题!(转) 树莓派自动化推流摄像头到Bilibili直播 计算函数“System.Data.Entity.Insfrastructure.DbQuery.ToString()”超时 记一次成功的Update(Oracle误Delete或Update数据还原) 极路由B70刷固件详细步骤 C# RTMP推流到网页实现直播 树莓派.Net Core Iot入门系列篇(2):DHT22温湿度传感器的使用 Ubuntu/Debian安装Frps并设置开机启动
最近评论
发布于 7 天前(02月21日) 好的谢谢,那我只能通过kill杀死推流指令进程来实现了。
发布于 7 天前(02月21日) 要用这个项目的话,你得自己拉代码来改了。做这玩意儿主要是考虑全天候的,没考虑过关[笑哭]
发布于 1 周前(02月21日) 就是想问有没有能通过代码控制的关闭推流的指令,而不需要手动控制。我想设置一个按钮来控制开始推流和结束...
发布于 1 周前(02月20日) 唔,没懂你意思,直接拔电源不就行了。不拔电源关闭推流服务也行撒。
发布于 1 周前(02月20日) 你好,我想问一下,如果不想推流了,该用什么方法停止树莓派推流呢?
书签
  • 打赏
  • 毒鸡汤(有点意思)
  • 米店
  • 金鱼直播间
放松一下
https://www.quarkbook.com/wp-content/uploads/2020/09/Yanni-Nightingale.flac
用户您好!请先登录!
登录 注册

COPYRIGHT © 2020 夸克之书. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备15036129号-9

登录
注册|忘记密码?