Requisits previs
Pas 1: configuració bàsica del sistema
Pas 2: instal·leu OpenJDK Java Runtime Environment (JRE) 8
Pas 3: instal·leu AirSonic
Pas 4: prova la instal·lació
Pas 5: obteniu un certificat SSL Let's Encrypt per al vostre lloc d'AirSonic
Pas 6: instal·leu Nginx com a servidor intermediari invers
AirSonic és un servidor de reproducció multimèdia de codi obert i gratuït. En aquest tutorial, us guiaré pel procés de desplegament d'una instància de servidor AirSonic des de zero en una instància de servidor CentOS 7.
Requisits previs
- Una instància de servidor Vultr CentOS 7 recentment desplegada amb almenys 2 GB de memòria. Diguem que té una adreça IPv4
203.0.113.1.
- Un usuari de sudo .
- Un domini
airsonic.example.comapuntat a la instància del servidor esmentada anteriorment.
Pas 1: configuració bàsica del sistema
Creeu un fitxer d'intercanvi
Per obtenir un millor rendiment del sistema, es recomana crear un fitxer d'intercanvi de 2 GB (2048 M) en una màquina amb 2 GB de memòria:
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
Nota: si utilitzeu una mida de servidor diferent, la mida adequada de la partició d'intercanvi pot variar.
Configura el nom d'amfitrió de la màquina i el nom de domini complet (FQDN)
Cal configurar correctament un nom d'amfitrió i un FQDN per a la màquina per habilitar la seguretat HTTPS amb un certificat SSL Let's Encrypt.
Les ordres següents configuraran un nom d'amfitrió airsonici un FQDN airsonic.example.comper a la màquina:
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
Els resultats es poden confirmar amb el següent:
hostname
hostname -f
Modifiqueu les regles del tallafoc per permetre el trànsit entrant HTTP i HTTPS
Elimineu el bloc predeterminat de CentOS 7 als ports 80( HTTP) i 443( HTTPS):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Instal·leu el repo
Instal·leu el repo EPEL YUM i, a continuació, actualitzeu el sistema:
sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now
Després de reiniciar el sistema, torneu a iniciar sessió amb el mateix usuari de sudo per continuar.
Pas 2: instal·leu OpenJDK Java Runtime Environment (JRE) 8
Instal·leu OpenJDK JRE 8 i, a continuació, confirmeu el resultat a CentOS 7:
sudo yum install -y java-1.8.0-openjdk.x86_64
java -version
La sortida de la segona ordre serà similar a la següent:
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)
A més, heu de configurar la JAVA_HOMEvariable d'entorn de la següent manera:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Pas 3: instal·leu AirSonic
AirSonic es pot desplegar mitjançant diversos mètodes. En aquest tutorial, instal·larem AirSonic mitjançant el paquet AirSonic WAR.
Creeu un usuari dedicat i un grup dedicat, tots dos anomenats airsonic:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Baixeu l'últim paquet 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
Baixeu els systemdfitxers de la unitat AirSonic predefinits i, a continuació, inicieu el servei 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
Nota: és possible que hàgiu de revisar i personalitzar els dos systemdfitxers de la unitat AirSonic a la vostra pròpia màquina.
Pas 4: prova la instal·lació
AirSonic estarà en funcionament ara, escoltant al port 8080. Podeu utilitzar l'ordre següent per confirmar que aquest és el cas:
ps -ef|grep airsonic
També podeu visitar directament el lloc d'AirSonic, però primer heu de modificar temporalment les regles del tallafoc:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld.service
A continuació, apunteu el vostre navegador web preferit a http://203.0.113.1:8080/airsonic, i després utilitzeu les credencials predeterminades que s'indiquen a continuació per iniciar la sessió:
- Nom d'usuari:
admin
- Contrasenya:
admin
Per motius de seguretat, hauríeu de canviar la contrasenya de l'administrador immediatament després d'iniciar la sessió.
Un cop confirmat el resultat, torneu a restringir l'accés al port 8080:
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo systemctl reload firewalld.service
Pas 5: obteniu un certificat SSL Let's Encrypt per al vostre lloc d'AirSonic
Per motius de seguretat, es recomana activar la seguretat HTTPS a tots els llocs web de nova creació. La pràctica més convenient per això és desplegar un certificat SSL Let's Encrypt de la següent manera.
Instal·leu la utilitat Certbot a 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
Utilitzeu Certbot per sol·licitar un certificat SSL Let's Encrypt per al domini airsonic.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
El certificat i la cadena es desaran al següent:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
El fitxer de claus es desarà aquí:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
El certificat SSL Let's Encrypt està dissenyat per caducar en tres mesos. Podeu configurar un treball cron per renovar els vostres certificats automàticament:
sudo crontab -e
Premeu Ii, a continuació, introduïu l'entrada següent:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Desa i surt:
:wq
Aquest treball cron intentarà actualitzar el certificat Let's Encrypt cada dia al migdia.
Pas 6: instal·leu Nginx com a servidor intermediari invers
Amb l'ajuda de Nginx, podeu facilitar l'accés dels visitants (de manera que ja no necessiten introduir el 8080número de port) i habilitar la seguretat HTTPS al vostre lloc web d'AirSonic.
Instal·leu Nginx mitjançant YUM:
sudo yum install -y nginx
A continuació, creeu un fitxer de configuració per a 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
Reinicieu Nginx per tal de posar en pràctica la vostra configuració:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Finalment, apunteu el vostre navegador web preferit http://airsonic.example.com/airsonico https://airsonic.example.com/airsoniccomenceu a explorar el vostre lloc web d'AirSonic.