本文最后更新于 768 天前,其中的信息可能已经有所发展或是发生改变。
配置域名解析
首先,去到对应的域名服务添加域名解析,我的域名在阿里云,因此在阿里云中配置
使用*泛解析域名到阿里云服务器上
Frp服务端配置
安装Frps
登陆阿里云SSH,使用docker安装frps镜像
docker run -d --net=host --name frps -v (frps配置映射路径):/etc/frp --restart=always snowdreamtech/frps
配置Frps
[common]
bind_port = 7000
bind_udp_port = 7000
vhost_http_port = 7080
#allow_ports = 4122,30000-31000,25565
max_pool_count = 5
token = xxxxxx
subdomain_host = frp.battlehawk233.cn
重启服务
docker restart frps
配置Nginx
# frps.conf
server {
listen 80;
listen [::]:80;
server_name *.frp.battlehawk233.cn; # 使用*通配四级域名
location / {
proxy_pass http://172.20.0.1:7080; # nginx为桥接模式,这里是Hostip
# 传递真实IP
proxy_set_header Host $host;
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;
}
}
重启服务
docker restart nginx
Frp客户端配置
安装Frpc
登陆树莓派SSH,使用docker安装frpc镜像
docker run -d --net=host --name frpc -v (frpc配置映射路径):/etc/frp --restart=always snowdreamtech/frpc
配置Frpc
[common]
server_addr = battlehawk233.cn
server_port = 7000
token = xxxxxx
# Http反代配置
[dashboard-rpi]
type = http
local_port = 80
subdomain = dashboard
use_encryption = true
use_compression = true
# 传递真实IP
proxy_protocol_version = v2
重启服务
docker restart frpc
配置Nginx
# dashboard.conf
server {
listen 80 proxy_protocol; # 和frpc中proxy_protocol搭配,必须一致
listen [::]:80 proxy_protocol;
server_name dashboard.frp.battlehawk233.cn;
root /var/www/dashboard
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
# 传递真实IP
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;
}
}
重启服务
sudo service nginx restart
访问站点
完成!