在Ubuntu 18.04上,如何安装AirSonic
Tianye
・11 分钟阅读
使用不同的系统?
AirSonic是一个免费的开源媒体流媒体服务器,在本教程中,我将指导你从头开始在Ubuntu18 04LTS服务器实例上部署AirSonic服务器实例的进程。
前提条件
- 新部署的Ubuntu 18.04服务器实例,内存至少为2GB ,假设它有一个IPv4地址203.0.113.1 ,
- 一个sudo用户 ,
- 指向上面提到的服务器实例的域名airsonic.example.com ,
步骤1:基本系统配置
创建交换文件
为了获得更好的系统性能,建议在2GB内存的机器上创建2GB (2048M )交换文件:
sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
注意:如果使用不同的服务器大小,交换分区的适当大小可能会改变。
设置机器主机名和完全限定域名(FQDN )
正确设置主机名和FQDN是为了使用let's Encrypt SSL证书启用HTTPS安全性所必需的。
以下命令为该计算机设置主机名airsonic
和FQDN airsonic.example.com
:
sudo hostnamectl set-hostname airsonic
sudo sed -i 's/^127.0.1.1.*$/127.0.1.1 airsonic.example.com airsonic/g' /etc/hosts
可以通过以下方法确认结果:
hostname
hostname -f
修改防火墙规则以允许入站SSH
,HTTP
和HTTPS
通信
为运行AirSonic服务器设置UFW防火墙规则:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
当你看到提示时 Command may disrupt existing ssh connections. Proceed with operation (y|n)?
输入y
,然后按ENTER键。
更新系统
出于安全和性能目的,必须将Ubuntu 18.04系统更新为最新状态:
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
升级期间,可能会通知你当前已安装的grub配置文件的版本已被本地修改,由于我们实际上不负责修改,所以,使用向上箭头来突出显示,install the package maintainer's version
选项,然后按ENTER键。
系统重新启动后,以相同的sudo用户重新登录以继续。
第2版:安装OpenJDK Java运行时环境(JRE )8
安装OpenJDK JRE 8,然后确认结果:
sudo apt install -y openjdk-8-jre-headless
java -version
第二个命令的输出将类似于以下内容:
openjdk version"1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
此外,你还需要设置JAVA_HOME
环境变量,如下所示:
echo"JAVA_HOME=$(readlink -f /usr/bin/java | sed"s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
步骤3:安装AirSonic
可以使用多种方法部署AirSonic ,在本教程中,我们将使用AirSonic WAR包安装AirSonic 。
创建专用用户和专用组,命名为airsonic
:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
下载最新的AirSonic WAR包AirSonic v10.1.2 :
cd /var/airsonic
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war
sudo chown -R airsonic:airsonic /var/airsonic
下载预定义的AirSonic systemd
单元文件,然后启动AirSonic服务:
sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/default/airsonic
sudo systemctl daemon-reload
sudo systemctl start airsonic.service
sudo systemctl enable airsonic.service
注意:你可能需要在你自己的机器上检查和定制两个AirSonic systemd
单元文件。
步骤4:测试安装
AirSonic将启动,并且正在运行,正在监听端口8080
,你可以使用以下命令确认是否存在以下情况:
ps -ef|grep airsonic
你也可以直接访问AirSonic站点,但是,你需要先修改防火墙规则:
sudo ufw allow in 8080/tcp
接下来,将你喜爱的网页浏览器指向http://203.0.113.1:8080/airsonic
,然后使用下面列出的默认凭据登录:
- 用户名:
admin
- 密码:
admin
为了安全起见,你应该在登录后,立即更改管理员的密码。
确认结果后,再次限制端口8080
的访问:
sudo ufw deny in 8080/tcp
步骤5:为你的AirSonic站点获取let's Encrypt SSL证书
为了安全起见,建议在每个新创建的网站上启用HTTPS安全性,最方便的做法是部署let's Encrypt SSL证书,如下所示。
安装Certbot实用程序:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot
使用Certbot为域airsonic.example.com
申请let's Encrypt SSL证书:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
证书和链将按以下方式保存:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
密钥文件将保存在这里:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
let's Encrypt SSL证书设计为在三个月后,过期,你可以设置一个cron作业来自动续订证书:
sudo crontab -e
当提示你选择编辑器时,输入2
,然后按ENTER键选择/usr/bin/vim.basic
。
接下来,按O键,然后添加一个新行,如下所示:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
保存和退出:
:wq
!
此cron作业将在中午每天更新let's Encrypt证书。
步骤6:将Nginx安装为反向代理
在Nginx的帮助下,你可以方便访客访问(以便他们不再需要输入8080端口号),并在AirSonic网站上启用HTTPS安全性。
使用APT安装Nginx :
sudo apt install -y nginx
接下来,为AirSonic创建一个配置文件:
cat <<EOF | sudo tee /etc/nginx/sites-available/airsonic.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name airsonic.example.com;
return 301 https://$server_name$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name airsonic.example.com;
ssl_certificate /etc/letsencrypt/live/airsonic.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/airsonic.example.com/privkey.pem;
# Proxy to the Airsonic server
location /airsonic {
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 https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header Host $http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http:// https://;
}
}
EOF
创建指向新创建的AirSonic Nginx配置文件的符号链接:
sudo ln -s /etc/nginx/sites-available/airsonic.conf /etc/nginx/sites-enabled/
重新启动Nginx以使你的配置生效:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
最后,将你喜爱的网页浏览器指向 http://airsonic.example.com/airsonic
或者 https://airsonic.example.com/airsonic
开始浏览你的AirSonic网站。