发表于 2024年6月17日1年前 vaultwarden 用了几年,备份方案翻来覆去折腾了好多种,这次利用 nginx syslog 实现“精确”的备份: log_format json-log escape=json '{"status":$status,"request_method":"$request_method","request_uri":"$request_uri"}'; server { location / { # ... proxy_redirect off; proxy_pass http://vaultwarden; proxy_http_version 1.1; access_log syslog:server=syslog-server:50333,facility=local7,tag=nginx,severity=info,nohostname json-log; } } 这样 syslog-server:50333 就可以收到完成的请求,可以拿到 status request_method request_uri 等信息,如此只需要实现个简单的 syslog server ,便可以根据这些信息来决定是否调用备份:例如所有 GET 请求都无需关心,因为对数据库没有更改;例如我不关心登录、注册、设备、二次验证之类的变更,则 ^/identity/accounts/prelogin ^/identity/connect/token .*/devices/.* .*/two-factor/.* 等请求也可以略过;例如我不使用 sends ,.*/sends/.* 也可以忽略。 bitwarden 客户端让每一次更改都必须对应 vaultwarden 数据库的更改,这个备份方案理论上也可以确保对自己有价值的变更都被备份。 部署运行了一周,我很喜欢这个方案 诸位觉得如何
vaultwarden 用了几年,备份方案翻来覆去折腾了好多种,这次利用 nginx syslog 实现“精确”的备份:
这样
syslog-server:50333就可以收到完成的请求,可以拿到statusrequest_methodrequest_uri等信息,如此只需要实现个简单的 syslog server ,便可以根据这些信息来决定是否调用备份:例如所有 GET 请求都无需关心,因为对数据库没有更改;例如我不关心登录、注册、设备、二次验证之类的变更,则^/identity/accounts/prelogin^/identity/connect/token.*/devices/.*.*/two-factor/.*等请求也可以略过;例如我不使用 sends ,.*/sends/.*也可以忽略。bitwarden 客户端让每一次更改都必须对应 vaultwarden 数据库的更改,这个备份方案理论上也可以确保对自己有价值的变更都被备份。
部署运行了一周,我很喜欢这个方案
诸位觉得如何