使用 apache 服务器 + cloudflare 配置 lx music同步服务器

在 lx-music 同步服务器的官方文档中,提到了可以使用 ngnix 服务器来代理并使用 ssl 加密。不过笔者的 1h1g vps上使用的是 apache2 服务器,借助 deepseek 的力量,成功参照官方配置 ngnix 服务器的文档,使用 apache2 服务器实现代理并使用 ssl 加密。

准备工作:

debian 12 vps 一个,托管在 cloudflare 的域名一个,vps 已安装 apache2 服务器,若未安装,执行以下命令安装:

sudo apt update && sudo apt install apache2 -y

cloudflare 配置:

进入你托管域名的仪表板,点击 dns 记录,点击添加记录,添加一条记录,类型选择 A,名称为 lx-music(可以按你的喜好替换),ipv4填你的 vps ipv4 地址,启用代理,最后保存。添加后如图所示:

完成后,点击 ssl/tls,选择源服务器,若无证书,选择创建证书,保存对应的 key 和 pem,若已有证书,下载保存。

将证书 key 和 pem 上传到 服务器的 /etc/ssl/you_domain(按需替换)目录下。若目录不存在,请先创建。完成后,如下图所示:

最后,添加缓存绕过规则,避免出现问题。

点击缓存,选择 Cache Rules,点击创建规则,如下图所示:

完成后保存,至此,cloudflare 配置部分结束。

apache2 服务器配置:

使用以下命令启用必须的 apache2 服务器模块

sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite

在 /etc/apache2/sites-available/ 目录下,新建一个名称为 lx-music.you_domain.conf 的配置文件,名称与 cloudflare 上的 dns 记录保持一致。

*注意⚠️:请将 lx-music.you_domain.conf 替换为你的域名!!!

sudo vim lx-music.you_domain.conf

向该配置文件,添加以下参考以下参考配置:

*注意⚠️:要将对应的域名替换为你的域名!!!同时注意证书文件的路径!!!

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName lx-music.145914.xyz

        # SSL 配置
        SSLEngine On
        SSLCertificateFile /etc/ssl/145914.xyz/145914.xyz.crt
        SSLCertificateKeyFile /etc/ssl/145914.xyz/145914.xyz.key
        SSLCertificateChainFile /etc/ssl/145914.xyz/145914.xyz.crt

        # 反向代理配置
        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / http://localhost:9527/
        ProxyPassReverse / http://localhost:9527/

        # 传递认证头
        RequestHeader set Authorization "expr=%{HTTP:Authorization}"

        # 设置请求头
        RequestHeader set Host "%{HTTP_HOST}e"
        RequestHeader set X-Real-IP "%{REMOTE_ADDR}e"
        RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e"
        RequestHeader set Upgrade "websocket" env=HTTP_UPGRADE
        RequestHeader set Connection "upgrade" env=HTTP_UPGRADE

        # WebSocket支持(强制升级连接)
        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /(.*) ws://127.0.0.1:9527/$1 [P,L]

        # 可选:设置超时和日志
        ProxyTimeout 300
        ErrorLog ${APACHE_LOG_DIR}/lx-music_error.log
        CustomLog ${APACHE_LOG_DIR}/lx-music_access.log combined
    </VirtualHost>
</IfModule>

完成后,启用域名并重启 apache2 服务器,检查配置文件语法:

*注意⚠️:请将 lx-music.145914.xyz.conf 替换为你的域名!!!

sudo a2ensite lx-music.145914.xyz.conf && sudo systemctl restart apache2 && sudo apache2ctl configtest

检查 apache2 服务器,确保处于活跃状态:

至此,apache2 服务器部分配置完成。

下载并运行 lx-music sync 服务器:

安装运行环境:

sudo apt install nodejs -y

安装完成后,使用

node -v

查看 nodejs 版本号。

安装pm2

sudo npm i -g pm2

至此,完成所需运行环境的安装。

下载 lx music 同步服务器:

截至发文时,lx-music sync 服务器最新版本为 v2.1.2

lx music sync 源码地址:

https://github.com/lyswhut/lx-music-sync-server

使用 wget 下载 最新的 lx-music sync 服务器

wget https://github.com/lyswhut/lx-music-sync-server/archive/refs/tags/v2.1.2.tar.gz

下载完成后,解压到当前目录:

tar -xzvf v2.1.2.tar.gz

解压完成后,进入服务器目录安装依赖:

cd lx-music-sync-server-2.1.2 && npm ci --omit=dev

完成后,编辑 config.js 文件进行配置:

vim config.js

取消所有选项的注释,设置name,password,修改 ‘proxy.enabled’ 为 true,其余选项保持默认。保存退出。

启动服务器:

npm run prd

查看启动日志,若无错误则启动成功

pm2 logs

访问 https://lx-music.you_domain/hello,出现 Hello~::^-^::~v4~ 说明已经可以正常访问 lx music 同步服务器了。

现在,一个有 ssl 加密的 lx music 同步服务器就搭建完成了。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注