标签: lx-music

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

    使用 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 同步服务器就搭建完成了。