Frp内网穿透之Nginx反代隐藏端口踩坑

写在前面:本篇文章仅适用于服务端搭建好的读者。

问题描述:

配置好服务端后,开放Frp配置的http和https端口,默认分别为5444,5443。在安全组内放行相关端口后,设置Nginx反代依旧无法访问。使用域名访问出现502情况或者“The page you visit not found. Sorry, the page you are looking ……”此类情况。

问题分析:

1,排除是Frp设置问题,查阅Frp安装路径下的相关文件:Centos环境下(/usr/local/frps)的frps.ini,并检查端口开放情况排除“未开启端口”的问题。

2,查阅位于Github的Frp中文配置指南(https://github.com/fatedier/frp/blob/master/README_zh.md)后排除客户端设置有误的问题。

3,查看Nginx反代相关文件,最终将错误定位在此处。

错误产生原因:

1,Https反代提示502原因

Frp是根据$host来判断该向何处内网转发,在proxy_pass 后如果写成IP形式则会出现此类错误

如:proxy_pass https://127.0.0.1:XXXX

争取的写法为:proxy_pass https://$host:XXXX 同时要添加:proxy_ssl_server_name on;

如:

location / {
proxy_ssl_server_name on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host:$server_port;
proxy_pass https://$host:xxxx; #通过域名访问frp服务
}

2,Http反代提示“The page you visit not found. Sorry, the page you are looking……”的原因

一方面也是由于:Frp是根据$host来判断该向何处内网转发,在proxy_pass 后如果写成IP形式则会出现此类错误

但是解决办法应该是将反代配置修改为:

location/{
proxy_pass http://127.0.0.1:xxxx;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}

至此,这个困然我三小时的问题终于完美解决。如有不当之处还请大家指正。

Wicos 2020.1.21

00:00/00:00

歪克士

每一个人都是一座孤岛,你,我,和他们……

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

Frp内网穿透之Nginx反代隐藏端口踩坑
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close