kwaa / caddy

🔒 caddy with my favorite modules.
https://hub.docker.com/r/kwaabot/caddy
16 stars 6 forks source link

可以添加个proxy-protocol模块吗? #9

Closed Stormdd closed 1 year ago

Stormdd commented 1 year ago

可以添加个proxy-protocol模块吗?

kwaa commented 1 year ago

看起来这个模块已经两年没有更新了,并且不兼容新版 caddy

Stormdd commented 1 year ago

看起来这个模块已经两年没有更新了,并且不兼容新版 caddy

好的谢谢

Stormdd commented 1 year ago

请问下如果我fork该项目自己修改后怎么制作成docker镜像呢? 我克隆整个文件夹到服务器里执行build.sh时,在让我输入user.name和密码的时候就停止了

Stormdd commented 1 year ago

看起来这个模块已经两年没有更新了,并且不兼容新版 caddy

我不是很懂这些,我想要通过Nginx复用443端口监听Naiveproxy和Xray的流量, 在学习某个Nginx通过Stream模块实现SNI分流笔记内容时,作者提示使用的这个模块。

我询问了下phind以下是答复:

proxy-protocol模块适用于新版本Caddy2吗 ANSWER 根据提供的上下文,proxy-protocol模块是Caddy2的一个监听器包装器,可添加对新连接上的PROXY头的支持。它允许代理在负载均衡下传递客户端IP,就像AWS或Google Cloud中使用的那样。该模块启用对代理协议(v1)的支持。代理协议允许通过负载均衡传递客户机IP。

根据提供的信息,proxy-protocol模块适用于新版本的Caddy2。下面是更多有关如何使用proxy-protocol模块的信息:

该模块可以通过JSON和Caddyfile进行配置。 监听器包装器可以通过Caddyfile的全局选项进行配置。 JSON和Caddyfile都支持以下选项: timeout:指定超时时间。 allow:指定允许的CIDRs。 以下是使用JSON配置的示例:

{ "apps": { "http": { "servers": { "myserver": { "listener_wrappers":[ {"wrapper": "proxy_protocol", "timeout": "5s", "allow": ["192.168.86/24"]}, {"wrapper":"tls"} ] } } } } } 以下是使用Caddyfile进行配置的示例:

{ servers { listener_wrappers { proxy_protocol { timeout allow } tls } } } 值得注意的是,如果代理存在多个且存在无匹配校验的代理,代理的逻辑是匹配最佳匹配项,在file_server匹配后,会继续匹配无匹配项的代理,导致文件无法访问404,因此需要使用@name标签和not path指令。

综上所述,proxy-protocol模块适用于新版本的Caddy2,可以通过JSON和Caddyfile进行配置。它允许代理在负载均衡下传递客户端IP,就像AWS或Google Cloud中使用的那样。使用该模块需要注意的是,如果代理存在多个且存在无匹配校验的代理,需要使用@name标签和not path指令。

kwaa commented 1 year ago

请问下如果我fork该项目自己修改后怎么制作成docker镜像呢? 我克隆整个文件夹到服务器里执行build.sh时,在让我输入user.name和密码的时候就停止了

那你的文件夹里应该有两个 caddy 二进制文件了,直接 docker build 就行(参数自己设置)

kwaa commented 1 year ago

补充:如果没有文件,那就把 build.sh 多余部分删掉重新运行

#!/usr/bin/env bash
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
for arch in amd64 arm64
do
        env GOOS=linux GOARCH=${arch} xcaddy build latest \
        --with github.com/caddy-dns/cloudflare \
        --with github.com/mholt/caddy-l4 \
        --with github.com/mholt/caddy-webdav \
        --with github.com/lindenlab/caddy-s3-proxy \
        --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive \
        --output caddy_${arch}
        git add caddy_${arch}
done
Stormdd commented 1 year ago

感谢

kwaa commented 1 year ago

更新:现在有 proxy-protocol 了,我自己维护了一份