frps反代配置
背景:
主域名ax-cloud.cn,该域名下http://tesla.ax-cloud.cn是一个实际存在的网站,http://frps.ax-cloud.cn是一个反代,指向http://127.0.0.1:7200(frps-panel,用来进行用户管理)。要求除这2个域名外,其他的域名均指向http://127.0.0.1:8088,即frps的vhostHTTPPort端口。
配置:
在宝塔中,新建一个名为default.ax-cloud.cn的站点:
1、登录宝塔面板 → 进入「网站」→ 点击「PHP项目」 → 点击「添加站点」;
2、站点信息填写(关键配置):
- 域名:随便填一个无效域名(如 default.ax-cloud.cn,后续会通过配置改为匹配所有域名);
- 根目录:无需实际目录,随便选一个(如 /www/wwwroot/default,为空即可);
- PHP 版本:选择「纯静态」(无需 PHP 解析);
- 其他选项(SSL、数据库等):全部不勾选;
3、点击「提交」,创建空白站点(仅用于承载转发配置)。
给 “默认站点” 添加自定义配置(核心转发规则)
1、找到刚创建的 “默认站点”(如 default.ax-cloud.cn)→ 点击「设置」→ 进入「配置文件」;
2、删除当前配置文件中的所有内容,粘贴以下 完整配置(已适配宝塔环境和你的需求):
# 缓存配置(可选,保留或删除)
proxy_cache_path /www/wwwroot/default/proxy_cache_dir levels=1:2 keys_zone=frps_default_cache:20m inactive=1d max_size=5g;
# 默认站点:仅匹配 未被 frps.ax-cloud.cn 和 tesla.ax-cloud.cn 匹配的域名
server {
listen 80 default_server; # 关键:未匹配其他精准域名时,才走此规则
listen [::]:80 default_server;
server_name _; # 匹配所有未被精准匹配的域名(自动排除两个实际网站)
index index.html;
root /www/wwwroot/default;
# 保留宝塔默认配置(证书验证、敏感文件禁止访问、日志)
include /www/server/panel/vhost/nginx/well-known/default.ax-cloud.cn.conf;
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) {
return 404;
}
location /.well-known {
allow all;
}
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
# 核心转发规则:其他域名全部转发到 8088 端口
location ^~ / {
proxy_pass http://127.0.0.1:8088;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_connect_timeout 60s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# 可选缓存配置
proxy_cache frps_default_cache;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 1m;
}
access_log /www/wwwlogs/default.ax-cloud.cn.log;
error_log /www/wwwlogs/default.ax-cloud.cn.error.log;
}