✅ 最佳实践方案
下面是一个完整示例,包含:
docker-compose.yml文件;- Nginx 独立反向代理配置(非默认);
- HTTPS 证书配置(用 Certbot 获取);
📁 第一步:创建 Vaultwarden 服务
在你服务器的某个目录,例如 /home/ubuntu/dockers/bitwarden/ 下创建:
docker-compose.yml
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./vw-data:/data
environment:
WEBSOCKET_ENABLED: "true" # 启用 WebSocket 支持
SIGNUPS_ALLOWED: "false" # 禁止新用户注册(建议开启后手动注册一个管理员账号再关闭)
ADMIN_TOKEN: "你的管理员令牌" # 用于访问管理员面板
然后启动服务:
docker-compose up -d
🌐 第二步:配置 Nginx 反向代理(非默认)
假设你有一个域名:vault.example.com
创建独立配置文件:
sudo vim /etc/nginx/sites-available/vaultwarden.conf
粘贴以下内容(注意替换域名):
server {
listen 80;
server_name vault.example.com;
location / {
proxy_pass http://127.0.0.1:80; # vaultwarden 在 docker 内监听 80
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
然后启用这个配置文件:
sudo ln -s /etc/nginx/sites-available/vaultwarden.conf /etc/nginx/sites-enabled/
🔒 第三步:用 Certbot 自动签发 HTTPS 证书
先安装 Certbot:
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
申请证书并自动配置 HTTPS:
sudo certbot --nginx -d vault.example.com
成功后,会自动将你上面那个配置文件改为支持 SSL。
✅ 第四步:重启服务并测试
sudo systemctl reload nginx
docker-compose restart
然后访问 https://vault.example.com 应该就能看到登录页面和按钮了。
📦 总结
- 服务不会覆盖你的 Nginx 默认站点配置;
- Vaultwarden 的容器监听在内部网络;
- Nginx 独立配置反代并加了 WebSocket;
- HTTPS 由 Certbot 负责自动管理。
注意:bitwardon不配置反向代理ssl证书无法登录,会一直转圈圈
补充:
Apache 反向代理版本
1️⃣ 新建站点配置文件
编辑 Apache 配置文件(假设域名是 app.example.com):
sudo vim /etc/apache2/sites-available/app.conf
粘贴下面内容:
<VirtualHost *:80>
ServerName app.example.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
ErrorLog ${APACHE_LOG_DIR}/app-error.log
CustomLog ${APACHE_LOG_DIR}/app-access.log combined
</VirtualHost>
保存并退出(nano 里按 Ctrl+O 回车保存,Ctrl+X 退出)。
2️⃣ 启用所需模块
sudo a2enmod proxy
sudo a2enmod proxy_http
3️⃣ 启用站点
sudo a2ensite app.conf
sudo systemctl reload apache2
4️⃣ 测试是否生效
在浏览器访问:
http://app.example.com
应该能看到你本地 9090 端口的服务内容。
5️⃣ (后续)申请 HTTPS
当 HTTP 能访问后,执行:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d app.example.com
Certbot 会自动帮你加上 HTTPS 配置。










