V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
muzihuaner
V2EX  ›  分享发现

[教程]一个服务器安装了 frps,占用了 80、443 端口,怎么继续使用 80、443 端口建站呢? 一个解决办法

  •  
  •   muzihuaner · 8 天前 · 557 次点击

    安装 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 端口了 大神们还有什么更好的方法么?

    puzzle9
        1
    puzzle9  
       8 天前
    frps 定位是端口映射
    置于用那个服务器端口 不影响啊

    caddy 和 nginx 这种 定位是反代
    用那个端口 也不影响啊 只是大家几乎都使用了 http 的端口

    所以 你问题在那
    muzihuaner
        2
    muzihuaner  
    OP
       8 天前
    @puzzle9 在同一台服务器上同时安装 frps 和 frpc
    Need4more
        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
    iceheart
        4
    iceheart  
       7 天前 via Android
    用 traefik
    muzihuaner
        5
    muzihuaner  
    OP
       7 天前 via Android
    @Need4more 我的服务器上 frps 是主业务,web 网页是附属的,其实没有区别😂
    muzihuaner
        6
    muzihuaner  
    OP
       7 天前 via Android
    @iceheart 好东西,又发现了新大陆🤗
    muzihuaner
        7
    muzihuaner  
    OP
       7 天前 via Android
    @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 -> 用户)
    muzihuaner
        8
    muzihuaner  
    OP
       7 天前 via Android
    @Need4more 你这种方案倒是也行
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:40 · PVG 05:40 · LAX 14:40 · JFK 17:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.