Apache 代理

2025-09-25
-
-

我假设您已经为要用于 Trilium 服务器的 DNS A 记录创建了该记录。trilium.yourdomain.com

一、下载 docker 镜像并创建容器

 docker pull triliumnext/trilium:[VERSION]
 docker create --name trilium -t -p 127.0.0.1:8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium:[VERSION]

二、配置Apache代理和websocket代理

2.1 启用 apache 代理模块

 a2enmod ssl
 a2enmod proxy
 a2enmod proxy_http
 a2enmod proxy_wstunnel

2.2 创建新的 let's encrypt 证书

 sudo certbot certonly -d trilium.mydomain.com

选择独立 (2) 并记下创建证书的位置(通常为 /etc/letsencrypt/live/...)3. 为 apache 创建一个新的虚拟主机文件(您可能想用来确定服务器根位置,我的是 /etc/apache2)apachectl -S

 sudo nano /etc/apache2/sites-available/trilium.yourdomain.com.conf

将以下文本粘贴(并自定义)到配置文件中

     ServerName http://trilium.yourdomain.com
     RewriteEngine on
         RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]


     ServerName https://trilium.yourdomain.com
     RewriteEngine On
     RewriteCond %{HTTP:Connection} Upgrade [NC]
     RewriteCond %{HTTP:Upgrade} websocket [NC]
     RewriteRule /(.*) ws://localhost:8080/$1 [P,L]
     AllowEncodedSlashes NoDecode
     ProxyPass / http://localhost:8080/ nocanon
     ProxyPassReverse / http://localhost:8080/
     SSLCertificateFile /etc/letsencrypt/live/trilium.yourdomain.com/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/trilium.yourdomain.com/privkey.pem
     Include /etc/letsencrypt/options-ssl-apache.conf

 启用虚拟主机 5.用 3 重新加载 apache2。创建并启用 systemd 服务以在启动时启动 docker 容器sudo a2ensite trilium.yourdomain.com.confsudo systemctl reload apache2

    创建一个名为/lib/systemd/system/trilium.service

 [Unit]
 Description=Trilium Server
 Requires=docker.service
 After=docker.service

 [Service]
 Restart=always
 ExecStart=/usr/bin/docker start -a trilium
 ExecStop=/usr/bin/docker stop -t 2 trilium

 [Install]
 WantedBy=local.target

三、安装、启用并启动服务

 sudo systemctl daemon-reload
 sudo systemctl enable trilium.service
 sudo systemctl start trilium.service

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录关闭