准备
这里以 Vultr VPS CentOS 7 with iptables 上部署 Vaultwarden 为例。
系统要求
Vaultwarden 使用 Rust 编写,支持 SQLite、MySQL 和 PostgreSQL 数据库后端,运行时只需要 10M 内存,可以说对硬件基本没有要求。
预设环境
OS 为 CentOS 7 with Docker Application
以下设置基于 LNMP,并使用 LNMP 的相关命令、配置等
已存在其他 Web 服务
假设使用域名
vault.yourdomain.com访问 Vaultwarden 实例Vaultwarden 容器的 80 端口暴露到宿主机的 8443 端口上
使用 LNMP 中由 Let's Encrypt 生成并自动更新的免费证书
在 Nginx 上设置反向代理为 Vaultwarden 开启 https
添加虚拟主机
使用如下命令添加 vhost:
说明:
使用域名
vault.yourdomain.com使用 INMP 自带的 Let's Encrypt 创建 SSL 证书
其他如 Rewrite rule、PHP Pathinfo、access log、databse、ftp 等全部选
no
虚拟主机 vault.yourdomain.com 的 Nginx 配置文件位置:/usr/local/nginx/conf/vhost/vault.yourdomain.com.conf
其默认的完整内容如下:
我们需要修改此文件,以添加如下功能:
设置反向代理
设置反向代理以使用 LNMP 生成并自动更新的免费 Let's Encrypt 证书。参考代理示例 → Nginx (by blackdex)。
在 vault.yourdomain.com 配置文件的 server { listen 443; 语句块内的第一个 location 块上方添加如下内容:
设置 http 跳转到 https
在 server { listen 80; 语句块内的 root ... 行下方添加一行:
另外,还要删除如下两个 location 语句块。不删除的话会导致无法解析 Vaultwarden 实例内容。
上面所有设置和修改完成后的 vault.yourdomain.com.conf 文件的完整内容如下:
重启 nginx 使配置生效:
其他
在 Vultr 实例上开放相应的外部访问端口
Vultr 实例默认开启了 443 端口,如果你使用非 443 端口,需要在 Vultr 后台或在 CentOS 上添加相应的防火墙规则。
最后更新于