前置
虽然在 FRPopen in new window 官网中给了 web 服务配置的示例,但在实际使用中存在两个问题:
- 有时部分资源找不到,导致页面无法渲染
- 域名后面还带一个端口,实在有点丑
配置
1. 服务器端 FRP 配置
[common]
bind_port = 7000
vhost_http_port = 8080
subdomain_host = frp.xxx.com
2. 服务器端 Nginx 配置
利用正则来匹配所有的 frp 二级域名。
# /etc/nginx/conf.d/frp.conf
server {
    listen       80;
    server_name  frp.xxx.com *.frp.xxx.com;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        proxy_pass              http://127.0.0.1:7000;
        # 此处简写
        proxy_set_header        Host $host;
    }
    #error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
3. 域名解析配置
根据 Nginx 的配置添加两项:
- frp.xxx.com
- *.frp.xxx.com
4. 客户端 FRP 配置
客户端的 Nginx 配置为默认时就可以使用,此处省略。
[common]
server_addr = xxx.xx.xx.xxx
server_port = 7000
# [ssh] 省略
[web1]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = sub1
测试
最后通过浏览器访问 sub1.frp.xxx.com 即可展现效果。
