Dik*_*raz 10 linux caddy caddyfile
我正在尝试在我的 Caddy v2 配置上实施 IP 白名单。相当于 NGINX 配置的东西,例如:
allow 1.1.1.1;
allow 8.8.8.8;
deny all;
Run Code Online (Sandbox Code Playgroud)
我当前的 Caddy 配置非常简单:
my.website.com {
reverse_proxy http://127.0.0.1:3000 {
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
你可以在 caddy v2 中尝试这样的操作:
my.domain.com {
@teammember {
remote_ip forwarded 183.77.5.126 113.73.5.126
}
handle @teammember {
reverse_proxy /* localhost:8081
}
respond "<h1>You are attempting to access protected resources!</h1>" 403
}
Run Code Online (Sandbox Code Playgroud)
我并不是说 qed 的答案是错误的,但是我无法让它在我的情况下工作(可能是由于在句柄内使用导入模板?)...
我的解决方案是......旧配置:
private.example.com {
import my_template argument_1 /path/to/example/argument2
}
Run Code Online (Sandbox Code Playgroud)
这更改为:
private.example.com {
@blocked not remote_ip 1.2.3.4
respond @blocked "<h1>Access Denied</h1>" 403
import my_template argument_1 /path/to/example/argument2
}
Run Code Online (Sandbox Code Playgroud)
只需添加这两行就可以通过该 IP 访问我的网站。来自不同 IP 的测试curl 返回 403 错误。
这是在 Caddy 2.4.6 上完成的
小智 -4
我不确定是否可以直接在 Caddy 中实现,但您可以添加中间件/插件来执行此操作。
这是您可以获得的链接: https: //github.com/pyed/ipfilter
根据这个中间件的文档,如果你只想允许你编写的 2 个 IP,你可能应该这样做:
my.website.com {
reverse_proxy http://127.0.0.1:3000
ipfilter / {
rule allow
ip 1.1.1.1 8.8.8.8
blockpage notauthorized.html
}
}
Run Code Online (Sandbox Code Playgroud)
我还认为,如果想阻止每个请求,而不仅仅是/,你必须编写ipfilter /*而不是ipfilter /.
| 归档时间: |
|
| 查看次数: |
8061 次 |
| 最近记录: |