安装 Caddy-Docker
docker run -d --name caddy -p 8080:80 -p 8443:443 \
-v /etc/caddy/Caddyfile:/etc/caddy/Caddyfile \
-v /var/www:/usr/share/caddy \
caddy
配置 FRP
serverAddr = "127.0.0.1"
serverPort = 7000
auth.method = "token"
auth.token = "passwd"
[[proxies]]
name = "test-web"
type = "https"
localIP = "127.0.0.1"
localPort = 8443
customDomains = ["test.abc.com"]
编辑/etc/caddy/Caddyfile
//反向代理
test.abc.com {
reverse_proxy 127.0.0.1:8008
}
//静态网站
test.abc.com {
root * /usr/share/caddy/test.abc.com
file_server
}
//使用 80 http
http://test.abc.com {
reverse_proxy 127.0.0.1:8008
}
这样访问 https://test.abc.com 就可以使用 443 端口了 大神们还有什么更好的方法么?
![]() |
1
puzzle9 8 天前
frps 定位是端口映射
置于用那个服务器端口 不影响啊 caddy 和 nginx 这种 定位是反代 用那个端口 也不影响啊 只是大家几乎都使用了 http 的端口 所以 你问题在那 |
![]() |
2
muzihuaner OP @puzzle9 在同一台服务器上同时安装 frps 和 frpc
|
3
Need4more 8 天前
好迷的操作。
我觉得是你把两个组件用乱了,没弄清楚他们的功能。 caddy 负责自动 https, frp 就只负责端口转发和 http 功能 说下我怎么做的吧 frps 有个 vhostHTTPPort 配置,你随便绑定个非 80 443 端口,比如说 5000 caddy 配置: test.abc.com { reverse_proxy 127.0.0.1:5000 } 你的 frpc 配置: [[proxies]] name = "test-web" type = "http" // 让 caddy 负责 https localIP = "127.0.0.1" localPort = 8443 customDomains = ["test.abc.com"] 这样就实现了 https 访问你本地的 127.0.0.1:8443 数据流: 用户访问 test.abc.com -> caddy( https) -> localhost:5000(frps) -> local:8443 |
4
iceheart 7 天前 via Android
用 traefik
|
![]() |
5
muzihuaner OP @Need4more 我的服务器上 frps 是主业务,web 网页是附属的,其实没有区别😂
|
![]() |
6
muzihuaner OP @iceheart 好东西,又发现了新大陆🤗
|
![]() |
7
muzihuaner OP @Need4more
用户浏览器 | | (HTTPS) 请求 test.abc.com v 服务器:443 (FRPS) [监听 443 端口] | | (根据域名 test.abc.com 找到代理,通过 frp 协议转发) v 本地 frpc 客户端 [连接 FRPS 的控制端口 7000 ,并等待转发请求] | | (HTTP) 请求 test.abc.com 转发到 localhost:8080 v Caddy:8080 [提供静态文件] | | 响应 v 沿原路返回 (frpc -> FRPS -> 用户) |
![]() |
8
muzihuaner OP @Need4more 你这种方案倒是也行
|