如何在Ubuntu 18.04、19.04上安装Subsonic Media Server并启用HTTPS

本教程将向您展示如何在Ubuntu 18.04、19.04上安装Subsonic媒体服务器,以及如何使用Nginx或Apache Web服务器为Subsonic设置反向代理,然后启用HTTPS。

Subsonic是用Java编写的免费(基于free bear)基于Web的媒体流媒体,可用于Linux,MacOS和Windows。 借助Subsonic,您可以从家用计算机或任何面向公众的计算机流式传输音乐,并可以使用Web浏览器从任何地方收听音乐,因此您不必将音乐与文件同步应用程序(如resilio sync或Syncthing)同步。

亚音速功能

  • 支持MP3,OGG,AAC以及通过HTTP流式传输的任何其他音频或视频格式。
  • 可与任何支持网络的媒体播放器一起使用,例如Winamp,iTunes,XMMS,VLC,MusicMatch和Windows Media Player
  • 专辑封面,即时播放列表,即时转码
  • 适用于Android,iPhone,Windows Phone的移动应用程序以及适用于Mac,Windows和Chrome的桌面应用程序。 Android应用程序支持离线播放。
  • 收听播客,分配评分,添加评论以及创建播放列表。
  • 与亲朋好友分享音乐。
  • 流视频(高级功能)
  • 和更多

如何在Ubuntu 18.04、19.04上安装Subsonic Media Server

Subsonic媒体服务器是用Java编写的,因此您需要安装Java运行时环境才能运行它。 您可以使用以下命令安装openjdk 8运行时环境。

sudo apt update

sudo apt install openjdk-8-jre

在撰写本文时,Subsonic与Java 11不兼容。如果您先前已在Ubuntu 18.04、19.04上安装Java 11,则需要运行以下命令以选择默认Java版本。

sudo update-alternatives --config java

键入数字以选择Java 8作为默认版本。

亚音速Java 8 Java 11

接下来,使用以下命令下载Subsonic deb软件包,该软件包将下载版本6.1.5。 您可以在Subsonic下载页面上查看最新版本。 如果有新版本可用,只需用新版本号替换6.1.5。

wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.5.deb

用安装 dpkg

sudo dpkg -i subsonic-6.1.5.deb

安装完成后,Subsonic守护程序将自动启动。 您可以通过以下方式查看其状态:

systemctl status subsonic

样本输出:

● subsonic.service - LSB: Subsonic daemon
   Loaded: loaded (/etc/init.d/subsonic; bad; vendor preset: enabled)
   Active: active (running) since Fri 2018-12-02 08:03:27 UTC; 7min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/subsonic.service
           └─3316 java -Xmx150m -Dsubsonic.home=/var/subsonic -Dsubsonic.host=0

如果它没有运行,则可以使用以下命令手动启动它

sudo systemctl start subsonic

并在系统启动时启用自动启动。

sudo systemctl enable subsonic

默认情况下,亚音速监听 0.0.0.0:4040,表示它接受来自本地网络和Internet的请求。

如果您在本地Ubuntu计算机上安装了Subsonic,则在浏览器中键入以下地址以访问Subsonic Web界面。

http://localhost:4040

如果您在面向Internet的Ubuntu服务器上安装了Subsonic,请在浏览器中键入以下地址以访问Subsonic Web界面。

http://your-server-ip:4040

subsonic-ubuntu-18.04-18.10

如果在Ubuntu上使用Java 11,则会看到以下错误。 解决方案是使用Java 8。

亚音速HTTP错误:503服务不可用

请注意,如果您在家庭服务器上安装Subsonic媒体服务器,并且想从外部网络访问它,那么您将需要在路由器中配置端口转发。 如果您的ISP提供了动态IP地址,则还应该设置动态DNS。

默认的用户名和密码是 admin。 登录后,您应该转到 设置>用户 更改管理员密码。

subsonic-媒体服务器-ubuntu 18.04

另外,在设置页面中添加媒体文件夹,然后单击保存按钮。 请注意,Subsonic运行时用户必须可以访问该文件夹。 添加文件夹后,单击“立即扫描媒体文件夹”按钮,您将能够在索引页面中听音乐。

亚音速添加媒体文件夹

变更使用者

默认情况下,Subsonic进程以root用户身份运行。 出于安全原因,您应将其更改为普通用户,方法是编辑 /etc/default/subsonic 文件。

sudo nano /etc/default/subsonic

找到以下行:

SUBSONIC_USER=root

将root更改为您自己的用户帐户,例如 linuxbabe

SUBSONIC_USER=linuxbabe

保存并关闭文件。 然后重新启动subsonic守护程序,以使更改生效。

sudo systemctl restart subsonic

为Subsonic设置Nginx反向代理

如果要将域名用于Subsonic Web界面,则可以设置Nginx反向代理。 使用以下命令在Ubuntu 18.04 / 19.04上安装Nginx。

sudo apt install nginx

然后创建用于代理的服务器阻止文件。

sudo nano /etc/nginx/conf.d/subsonic-proxy.conf

将以下文本放入文件中。 更换 subsonic.your-domain.com 用您自己的域名。 位置{…}块将向Subsonic守护程序发出Nginx代理请求。 不要忘记为子域设置A记录。

server {
        listen 80;
        server_name subsonic.your-domain.com;

        location / {
                proxy_pass http://127.0.0.1:4040;
                proxy_set_header Host $http_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;
        }
}

保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,则重新加载Nginx以使新配置生效。

sudo systemctl reload nginx

现在,Subsonic媒体服务器位于Nginx的后面,您可以使用域名访问Subsonic Web UI(subsonic.your-domain.com

使用Nginx启用HTTPS

要启用HTTPS安全连接,您可以从Let’s Encrypt获取并安装免费的TLS / SSL证书。 使用以下命令安装Let’s Encrypt(certbot)客户端:

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt install certbot python3-certbot-nginx

然后发出以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。 将红色文本替换为您的实际数据。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain subsonic.your-domain.com

亚音速certbot https证书

在几秒钟之内,您应该看到如下所示的祝贺消息,这表示证书已成功获得。亚音速Ubuntu 16.04 https letsencrypt
再次转到您的Subsonic媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。 接下来,我们需要修改Nginx配置文件。

sudo nano /etc/nginx/conf.d/subsonic-proxy.conf

现在有两个服务器{…}块,因为Certbot自动配置了SSL服务器块(侦听443 ssl)。 在SSL服务器块中,将以下行添加到location / {…}块中。

proxy_redirect http:// https://;

亚音速https设置页面

此行会将所有http服务器响应重定向到https服务器响应,这是正确显示Subsonic设置页面所必需的。 保存并关闭文件。 测试Nginx配置并重新加载。

sudo nginx -t

sudo systemctl reload nginx

设置Apache反向代理

如果您更喜欢Nginx而不是Apache,请使用以下命令进行安装:

sudo apt install apache2

要将Apache用作反向代理,我们需要启用 proxy 模块和标头模块。

sudo a2enmod proxy proxy_http headers

然后为Subsonic媒体服务器创建虚拟主机文件。

sudo nano /etc/apache2/sites-available/subsonic-proxy.conf

将以下配置放入文件中。 更换 subsonic.your-domain.com 与您的实际域名。 不要忘记为此子域创建DNS A记录。

<VirtualHost *:80>
   ServerName subsonic.your-domain.com
   ErrorDocument 404 /404.html
   DocumentRoot /var/www
   ProxyPass / http://localhost:4040/
   ProxyPassReverse / http://localhost:4040/
   Header always unset X-Frame-Options
</VirtualHost>

保存并关闭文件。 然后启用此虚拟主机。

sudo a2ensite subsonic-proxy.conf

重新启动Apache

sudo systemctl restart apache2

现在,您可以使用域名访问Subsonic Web UI。

在Apache上启用HTTPS

要启用HTTPS安全连接,您可以从Let’s Encrypt获取并安装免费的TLS / SSL证书。 使用以下命令安装Let’s Encrypt(certbot)客户端:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt install certbot python3-certbot-apache

然后使用apache插件获取并安装证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple --email your-email-address -d subsonic.your-domain.com

在几秒钟之内,您应该看到如下所示的祝贺消息,这表示证书已成功获得。亚音速Ubuntu 16.04 https letsencrypt

您的TLS证书将自动安装。 再次转到您的Subsonic媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。

我希望本教程可以帮助您在Ubuntu 18.04和Ubuntu 19.04上安装Subsonic媒体服务器。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。

Sidebar