首先要理解的是, 我们的公网服务器上面运行的是frps 服务, 本地开发环境运行的是 frpc 服务
在 docker-compose.yml 中新增一项服务
### frp ##############################################
frp:
build:
context: ./frp
networks:
- backend
ports:
- "8780:8780"
在laradock文件夹下面创建
Dockerfile文件
FROM cloverzrg/frps-docker
COPY frps.ini /conf/frps.ini
EXPOSE 8780
frps.ini
# frps.ini
[common]
bind_port = 8780
# http服务端口
vhost_http_port = 7000
修改nginx转发规则
upstream frp {
server frp:7000;
}
server{
server_name yourserver.com;
root /var/www/sm;
index index.html index.htm;
location / {
proxy_pass http://192.168.224.5:7000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这样设置之后, 本地会暴露8780端口给外面, 用于客户端的连接
frpc.ini
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
server_addr = 1.1.1.1
server_port = 8780
[myserver]
type = http
#端口
local_port = 8080
#泛解析域名,自己定义 如:test,解析后为test.frp.frpss.top
custom_domains = yourserver.com
网友评论