AirSonic este un server de streaming gratuit și open source. În acest tutorial, vă voi ghida în procesul de implementare de la zero a unei instanțe de server AirSonic pe o instanță a serverului CentOS 7.
Cerințe preliminare
- O instanță recent implementată a serverului Vultr CentOS 7 cu cel puțin 2 GB memorie. Spune că are o adresă IPv4
203.0.113.1.
- Un utilizator sudo .
- Un domeniu
airsonic.example.comfiind indicat spre instanța de server menționată mai sus.
Pasul 1: Configurația de bază a sistemului
Creați un fișier swap
Pentru a îmbunătăți performanțele sistemului, se recomandă crearea unui fișier swap de 2 GB (2048M) pe o mașină cu 2 GB memorie:
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
Notă: Dacă utilizați o dimensiune diferită a serverului, dimensiunea potrivită a partiției swap poate varia.
Configurați numele de gazdă al mașinii și numele de domeniu complet calificat (FQDN)
Configurarea corectă a unui nume de gazdă și a unui FQDN pentru aparat este necesară pentru a permite securizarea HTTPS cu un certificat Let's Encrypt SSL.
Următoarele comenzi vor configura un nume de gazdă airsonicși un FQDN airsonic.example.compentru aparat:
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
Rezultatele pot fi confirmate cu următoarele:
hostname
hostname -f
Modificați regulile firewallului pentru a permite traficul HTTP și HTTPS de intrare
Eliminați blocul implicit al CentOS 7 pe porturi 80( HTTP) și 443( HTTPS):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Instalați repo
Instalați EPEL YUM repo și apoi actualizați sistemul:
sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now
După repornirea sistemului, conectați-vă ca același utilizator sudo pentru a continua.
Pasul 2: Instalează OpenJDK Java Runtime Environment (JRE) 8
Instalați OpenJDK JRE 8 și apoi confirmați rezultatul pe CentOS 7:
sudo yum install -y java-1.8.0-openjdk.x86_64
java -version
Rezultatul celei de-a doua comenzi va fi similar cu următoarele:
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)
În plus, trebuie să configurați JAVA_HOMEvariabila de mediu după cum urmează:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Pasul 3: Instalează AirSonic
AirSonic poate fi implementat folosind diferite metode. În acest tutorial, vom instala AirSonic folosind pachetul AirSonic WAR.
Creați un utilizator dedicat și un grup dedicat, ambii numiți airsonic:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Descărcați cel mai recent pachet 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
Descărcați systemdfișierele predefinite ale unității AirSonic și apoi porniți serviciul 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
Notă: Este posibil să fie nevoie să revizuiți și să personalizați cele două systemdfișiere de unități AirSonic pe propria mașină.
Pasul 4: Testați instalarea
AirSonic va fi în funcțiune acum, ascultând în port 8080. Puteți utiliza următoarea comandă pentru a confirma că acesta este cazul:
ps -ef|grep airsonic
De asemenea, puteți vizita direct site-ul AirSonic, dar mai întâi trebuie să modificați temporar regulile firewall-ului:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld.service
Apoi, îndreptați-vă browserul web preferat http://203.0.113.1:8080/airsonicși apoi utilizați datele de identificare implicite enumerate mai jos pentru a vă autentifica:
- Nume de utilizator:
admin
- Parola:
admin
În scopuri de securitate, ar trebui să schimbați parola administratorului imediat după logare.
După confirmarea rezultatului, restrângeți din nou accesul la portul 8080:
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo systemctl reload firewalld.service
Pasul 5: Obțineți un certificat SSL Let's Encrypt pentru site-ul dvs. AirSonic
În scopuri de securitate, se recomandă activarea securității HTTPS pe fiecare site web recent creat. Cea mai convenabilă practică este aceea de a implementa un certificat SSC Let's Encrypt după cum urmează.
Instalați utilitarul Certbot pe CentOS 7:
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
Utilizați Certbot pentru a solicita un certificat SSL Let's Encrypt pentru domeniu airsonic.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d airsonic.example.com
Certificatul și lanțul vor fi salvate la următoarele:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
Fișierul cheie va fi salvat aici:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
Certificatul Let's Encrypt SSL este proiectat să expire în trei luni. Puteți configura o lucrare cron pentru a reînnoi certificatele în mod automat:
sudo crontab -e
Apăsați I, apoi introduceți următoarea intrare:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Salvează și închide:
:wq
Această lucrare cron va încerca să actualizeze certificatul Let's Encrypt în fiecare zi la prânz.
Pasul 6: Instalați Nginx ca proxy invers
Cu ajutorul Nginx, puteți facilita accesul vizitatorilor (astfel încât nu mai trebuie să introducă 8080numărul portului) și să activați securitatea HTTPS pe site-ul dvs. AirSonic.
Instalați Nginx folosind YUM:
sudo yum install -y nginx
Apoi, creați un fișier de configurare pentru 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
Reporniți Nginx pentru a vă configura configurația:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
În cele din urmă, îndreptați-vă browserul preferat către http://airsonic.example.com/airsonicsau https://airsonic.example.com/airsonicsă începeți să explorați site-ul dvs. AirSonic.