如何在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网站。