You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何配置Apache2与主机,将流量转发至Bitwarden的Nginx Docker容器

没问题,我来一步步帮你搞定这个配置——既要让Bitwarden通过子域名正常访问,又不干扰现有Apache托管的站点,核心就是用Apache的反向代理功能把指定子域名的流量转发到Docker容器的端口上。下面是具体步骤:

步骤1:配置DNS解析子域名

首先得确保你的子域名bitwarden.domain.com已经指向服务器的公网IP。登录你的域名服务商后台,添加一条A记录,将bitwarden子域名指向服务器的公网IP即可。这一步是基础,否则域名无法定位到你的服务器。

步骤2:部署Bitwarden Docker容器

Bitwarden的Docker镜像默认会占用80/443端口,但你的主机已经跑了Apache2(占用了这两个端口),所以我们需要把容器端口映射到主机的其他闲置端口(比如8081和8443),并且只允许本地访问这些端口,避免直接暴露公网。

  1. 先创建Bitwarden的数据存储目录(用来持久化数据):
mkdir -p /opt/bitwarden
cd /opt/bitwarden
  1. 运行Docker容器,设置关键环境变量和端口映射:
docker run -d \
  --name bitwarden \
  -v /opt/bitwarden:/data \
  -e WEBSERVER_HOST=bitwarden.domain.com \
  -e WEBSERVER_HTTP_PORT=8081 \
  -e WEBSERVER_HTTPS_PORT=8443 \
  -p 127.0.0.1:8081:8081 \
  -p 127.0.0.1:8443:8443 \
  bitwardenrs/server:latest

注:如果使用官方Bitwarden云镜像而非bitwardenrs,命令参数会略有不同,但反向代理逻辑一致,只需调整容器端口映射即可。

步骤3:配置Apache2虚拟主机

bitwarden.domain.com创建专属的虚拟主机配置,让Apache识别该子域名并转发流量到Docker容器。

  1. 创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/bitwarden.conf
  1. 粘贴以下配置内容(先配置HTTP重定向,后续通过Certbot自动完善SSL):
<VirtualHost *:80>
    ServerName bitwarden.domain.com

    # 强制将HTTP请求重定向到HTTPS(Bitwarden要求必须使用HTTPS)
    Redirect permanent / https://bitwarden.domain.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName bitwarden.domain.com

    # 启用反向代理并保留主机头信息
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8081/
    ProxyPassReverse / http://127.0.0.1:8081/

    # SSL证书路径后续由Certbot自动填充
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/bitwarden.domain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/bitwarden.domain.com/privkey.pem
</VirtualHost>
步骤4:启用Apache必要模块

Apache需要几个模块来支持反向代理和SSL功能,运行以下命令启用:

sudo a2enmod proxy proxy_http ssl rewrite headers
步骤5:获取并配置SSL证书

Bitwarden必须通过HTTPS访问,我们用Certbot免费获取Let's Encrypt证书,它还会自动完善Apache的SSL配置。

  1. 安装Certbot及Apache插件:
sudo apt update && sudo apt install certbot python3-certbot-apache
  1. 运行Certbot获取证书并自动配置虚拟主机:
sudo certbot --apache -d bitwarden.domain.com

按照提示操作,选择“重定向HTTP到HTTPS”选项,完成后Certbot会自动更新你的bitwarden.conf文件,填充正确的SSL证书路径。

步骤6:启用虚拟主机并重启Apache
  1. 启用刚创建的虚拟主机:
sudo a2ensite bitwarden.conf
  1. 检查Apache配置语法是否正确:
sudo apache2ctl configtest

如果输出Syntax OK,则重启Apache服务:

sudo systemctl restart apache2
最后测试与注意事项
  • 现在访问https://bitwarden.domain.com,应该能正常看到Bitwarden的登录/注册页面,同时原有站点和子域名不受任何影响。
  • 如果服务器启用了防火墙(如ufw),确保开放80和443端口:sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
  • 定期更新Docker容器和Apache以保证安全:docker pull bitwardenrs/server:latest && docker restart bitwarden,以及sudo apt update && sudo apt upgrade

内容的提问来源于stack exchange,提问作者spcial

火山引擎 最新活动