目录
frp内网穿透、并通过nginx进行反代
/      

frp内网穿透、并通过nginx进行反代

frp内网穿透

frp实现内网穿透:http://blog.lacknb.cn/articles/2019/11/13/1577974146959.html

主要 为了在公网调试本地程序。

之前 弄微信公众号后台的时候,有这个需求微信公众号的接口 需要 是80端口的 公网地址。

通过nginx进行反代

通过正常的思路进行反代,可能导致 网站无法访问。

image.png

就像这样。

frp服务端 tcp 使用的7000端口,http不想用80端口,但又想用80端口访问。

这里服务端默认使用7001端口。

[common]
server_addr=x.x.x.x
server_port=7000
token=123456

[web]
type=http
local_ip=127.0.0.1
local_port=8080

custom_domains=www.yourdomain.com

正常情况下,frp 客户端是这样配置的。

nginx.conf 如下配置

        server {
                listen  80;
                server_name  www.yourdomain.com;

                location / {
                  proxy_pass  http://ip:7001;
                }

        }


通过www.yourdomain.com 反代到 7001端口,访问 本地的项目。

实际上这样配置会 访问不到。

解决办法有两个。

  1. 第一种

将 nginx配置文件 反代的ip 改成www.yourdomain.com:7001 如下

        server {
                listen  80;
                server_name  www.yourdomain.com;

                location / {
                  proxy_pass  http://www.yourdomain:7001;
                }

        }



这样就可以解决。

  1. 第二种

将frp客户端的 frpc.ini中的domains 修改成 127.0.0.1

  • nginx
        server {
                listen  80;
                server_name  www.yourdomain.com;

                location / {
                  proxy_pass  http://127.0.0.1:7001;
                }
        }

  • frp客户但的frpc.ini
[common]
server_addr=x.x.x.x
server_port=7000
token=123456

[web]
type=http
local_ip=127.0.0.1
local_port=8080
custom_domains=127.0.0.1

这种有个好处,就是7001端口 不需要开启,就可以正常使用。

最后

总之来说,就是客户端中 域名的配置,要和nginx的 反代的一致。


标题:frp内网穿透、并通过nginx进行反代
作者:gitsilence
地址:http://blog.lacknb.cn/articles/2021/01/03/1609682668100.html