如何在Centos 7上安装AirSonic

・10 分钟阅读

使用不同的系统?

AirSonic是一个免费的开源媒体流媒体服务器,在本教程中,我将指导你在Centos7服务器实例上从头开始部署AirSonic服务器实例。

前提条件

  • 新部署的CentOS 7服务器实例,内存至少为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
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 airsonic.example.com airsonic
127.0.0.1 airsonic
::1 airsonic
EOF

可以通过以下方法确认结果:

 
hostname
hostname -f

 

修改防火墙规则以允许入站HTTP和HTTPS通信

删除上CentOS 7端口80 (HTTP )和443 (HTTPS )的默认值:


sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

安装repo

安装EPEL repo,然后更新系统:


sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now

系统重新启动后,以相同的sudo用户重新登录以继续。

第2版:安装OpenJDK Java运行时环境(JRE )8

安装OpenJDK JRE 8,然后在CentOS 7上确认结果:


sudo yum install -y java-1.8.0-openjdk.x86_64
java -version

第二个命令的输出将类似于以下内容:


openjdk version"1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, 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包:


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/sysconfig/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 firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld.service

接下来,将你喜爱的网页浏览器指向http://203.0.113.1:8080/airsonic,然后使用下面列出的默认凭据登录:

  • 用户名:admin
  • 密码:admin

为了安全起见,你应该在登录后,立即更改管理员的密码。

确认结果后,再次限制对端口8080的访问:


sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo systemctl reload firewalld.service

步骤5:为你的AirSonic站点获取let's Encrypt SSL证书

为了安全起见,建议在每个新创建的网站上启用HTTPS安全性,最方便的做法是部署let's Encrypt SSL证书,如下所示。

在CentOS 7上安装Certbot实用程序:


sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum 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

 

按i键,然后输入以下条目:


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安全性。

使用YUM安装Nginx :


sudo yum install -y nginx

接下来,为AirSonic创建一个配置文件:


cat <<EOF | sudo tee /etc/nginx/conf.d/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

重新启动Nginx以使你的配置生效:


sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

最后,将你喜爱的网页浏览器指向 http://airsonic.example.com/airsonic 或者 https://airsonic.example.com/airsonic 开始浏览你的AirSonic网站。

月月 profile image