在docker中使用caddy和trojan-go搭建网络代理服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在docker中使用caddy和trojan-go搭建网络代理服务相关的知识,希望对你有一定的参考价值。

参考技术A 关闭防火墙

更新索引和相关依赖

创建 /var/www/html 目录存放 index.html 网页文件

创建 /etc/caddy 目录存放 Caddyfile 配置文件

创建 /etc/trojan-go 目录存放 config.json 配置文件

安装 acme.sh ,将 my@example.com 替换为你自己的邮件

安装 socat ,使用 acme.sh 申请证书必须安装它

申请证书,将 example.com 替换为你自己的域名,并保证 80 端口没有被占用

安装证书,将 example.com 替换为你自己的域名,将 server.key 和 server.crt 文件安装在 /etc/trojan-go 目录中

升级 acme.sh

卸载旧版本容器

更新索引和相关依赖

信任公钥

添加软件仓库

安装 docker

在 docker 中部署 caddy 来搭建网站伪装 trojan-go 程序,在 /var/www/html 目录下创建 index.html 网页文件

在 /etc/caddy 目录下创建 Caddyfile 配置文件

启动 caddy ,这时你可以通过 ip 来访问网站了

在 docker 中部署 trojan-go 实现网络代理服务,在 /etc/trojan-go 目录下创建 config.json 配置文件,将配置文件中的 password 替换为你自己的密码,将配置文件中的 example.com 替换为你自己的域名

启动 trojan-go 容器,这时你可以通过客户端连接它实现网络代理了,访问 youtube.com 看看是不是可以看视频了

Caddy reverse_proxy 和 React 路由器

【中文标题】Caddy reverse_proxy 和 React 路由器【英文标题】:Caddy reverse_proxy and React Router 【发布时间】:2021-09-21 07:06:05 【问题描述】:

我无法设置我的 Caddyfile 以使用 React SPA 应用程序,这样

    React 路由路由工作 对/api/(例如/api/foo)的调用被反向代理到另一个位置

使用下面我当前的Caddyfile,React 路由器似乎正在工作(访问mysite.com/faq 不会给出 404)但对 API 后端的调用(例如 mysite.com/api/foo)似乎正在尝试加载 React 路由器路由.

我们如何解决这个问题Caddyfile

www.example.com 
    redir https://example.comuri


example.com 
    root * /root/example/frontend/build
    file_server
    encode gzip zstd

    reverse_proxy /api/*  api.example.com:8000

    try_files path /index.html
    
    tls admin@example.com

    log 
        output file /root/example/logs/access.log 
                roll_size 100mb
                roll_keep 5
                roll_keep_for 720h
        
    


更新:这个Caddyfile 也不起作用,React 路由器不再起作用,访问https://example.com/faq 时收到错误 404。但是,反向代理似乎正在工作:当我们访问 https://example.com/api/foo 时,API 服务器正在获得点击,但它错误地将它们作为 http://api.example.com:8000/api/foo 而不是 http://api.example.com:8000/foo

www.example.com 
    redir https://example.comuri


example.com 
    root * /root/example/frontend/build
    file_server
    encode gzip zstd

    reverse_proxy /api/*  api.example.com:8000

    @notAPI 
        not 
            path /api/*
        
        file 
            try_files path path/ /index.html?query
        
    
    rewrite @notAPI http.matchers.file.relative
    
    tls admin@example.com

    log 
        output file /root/example/logs/access.log 
                roll_size 100mb
                roll_keep 5
                roll_keep_for 720h
        
    

使用 Caddy v2.4.3

使用caddy start --config ~/foo/Caddyfile启动Caddy

【问题讨论】:

【参考方案1】:

我得到了以下工作:

http://localhost 
    root * ./trial-ui
    route 
        reverse_proxy /api/* http://127.0.0.1:8080
        try_files path /index.html
        file_server
    

【讨论】:

以上是关于在docker中使用caddy和trojan-go搭建网络代理服务的主要内容,如果未能解决你的问题,请参考以下文章

一键安装Caddy,快速部署反向代理或镜像网站

MacOS安装1.x以及2.x的caddy

用 Caddy 替代 Nginx 迈入 HTTPS 时代

Caddy reverse_proxy 和 React 路由器

Caddy 一个用Go实现的Web Server

caddy 反代wordpress + ssl证书生成