frp实现内网穿透:http://blog.lacknb.cn/articles/2019/11/13/1577974146959.html
主要 为了在公网调试本地程序。
之前 弄微信公众号后台的时候,有这个需求微信公众号的接口 需要 是80端口的 公网地址。
通过正常的思路进行反代,可能导致 网站无法访问。
就像这样。
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=8080custom_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端口,访问 本地的项目。
实际上这样配置会 访问不到。
解决办法有两个。
将 nginx配置文件 反代的ip 改成www.yourdomain.com:7001 如下
server {
listen 80;
server_name www.yourdomain.com;
location / {
proxy_pass http://www.yourdomain:7001;
}
}
这样就可以解决。
将frp客户端的 frpc.ini中的domains 修改成 127.0.0.1
server {
listen 80;
server_name www.yourdomain.com;
location / {
proxy_pass http://127.0.0.1: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=127.0.0.1
这种有个好处,就是7001端口 不需要开启,就可以正常使用。
总之来说,就是客户端中 域名的配置,要和nginx的 反代的一致。