
安装 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 135 天前 frps 定位是端口映射 置于用那个服务器端口 不影响啊 caddy 和 nginx 这种 定位是反代 用那个端口 也不影响啊 只是大家几乎都使用了 http 的端口 所以 你问题在那 |
2 muzihuaner OP @puzzle9 在同一台服务器上同时安装 frps 和 frpc |
3 Need4more 135 天前 好迷的操作。 我觉得是你把两个组件用乱了,没弄清楚他们的功能。 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 135 天前 via Android 用 traefik |
5 muzihuaner OP @Need4more 我的服务器上 frps 是主业务,web 网页是附属的,其实没有区别 |
6 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 你这种方案倒是也行 |