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 Ubuntu 18.04 LTS.
Requisits previs
- Una instància de servidor Vultr Ubuntu 18.04 LTS 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
sudo sed -i 's/^127.0.1.1.*$/127.0.1.1 airsonic.example.com airsonic/g' /etc/hosts
Els resultats es poden confirmar amb el següent:
hostname
hostname -f
Modifiqueu les regles del tallafoc per permetre el trànsit entrant SSH, HTTP, iHTTPS
Configureu les regles del tallafoc UFW per executar un servidor AirSonic:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Quan vegeu la sol·licitud Command may disrupt existing ssh connections. Proceed with operation (y|n)?, introduïu yi després premeu ENTER.
Actualitzar el sistema
Per motius de seguretat i rendiment, és necessari actualitzar el sistema Ubuntu 18.04 LTS a l'estat més recent:
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Durant l'actualització, és possible que se us informe que la versió instal·lada actualment del fitxer de configuració de grub s'ha modificat localment. Com que en realitat no som responsables de la modificació, utilitzeu la UPfletxa per ressaltar l' install the package maintainer's versionopció i, a continuació, premeu ENTER.
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 els resultats:
sudo apt install -y openjdk-8-jre-headless
java -version
La sortida de la segona ordre serà similar a la següent:
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)
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, 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
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/default/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 ufw allow in 8080/tcp
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, 8080torneu a restringir l'accés al port :
sudo ufw deny in 8080/tcp
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:
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
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
Quan se us demani que seleccioneu un editor, introduïu 2i premeu ENTERper triar /usr/bin/vim.basic.
A continuació, premeu Oi afegiu una nova línia tal com es mostra a continuació:
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 APT:
sudo apt install -y nginx
A continuació, creeu un fitxer de configuració per a 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
Creeu un enllaç simbòlic que apunti al fitxer de configuració AirSonic Nginx de nou creat:
sudo ln -s /etc/nginx/sites-available/airsonic.conf /etc/nginx/sites-enabled/
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.