Forutsetninger
Trinn 1: Grunnleggende systemkonfigurasjon
Trinn 2: Installer OpenJDK Java Runtime Environment (JRE) 8
Trinn 3: Installer AirSonic
Trinn 4: Test installasjonen
Trinn 5: Skaff et Let's Encrypt SSL-sertifikat for din AirSonic-side
Trinn 6: Installer Nginx som en omvendt proxy
AirSonic er en gratis og åpen kildekode mediestrømmeserver. I denne opplæringen vil jeg veilede deg gjennom prosessen med å distribuere en AirSonic-serverforekomst fra bunnen av på en Ubuntu 18.04 LTS-serverforekomst.
Forutsetninger
- En nylig distribuert Vultr Ubuntu 18.04 LTS-serverforekomst med minst 2 GB minne. Si at den har en IPv4-adresse
203.0.113.1.
- En sudo-bruker .
- Et domene
airsonic.example.comsom peker til serverforekomsten nevnt ovenfor.
Trinn 1: Grunnleggende systemkonfigurasjon
Lag en byttefil
For å få bedre systemytelse, anbefales det å lage en 2GB (2048M) byttefil på en maskin med 2GB minne:
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
Merk: Hvis du bruker en annen serverstørrelse, kan den passende størrelsen på swap-partisjonen variere.
Konfigurer maskinens vertsnavn og fullt kvalifiserte domenenavn (FQDN)
Riktig oppsetting av et vertsnavn og en FQDN for maskinen er nødvendig for å aktivere HTTPS-sikkerhet med et Let's Encrypt SSL-sertifikat.
Følgende kommandoer vil sette opp et vertsnavn airsonicog en FQDN airsonic.example.comfor maskinen:
sudo hostnamectl set-hostname airsonic
sudo sed -i 's/^127.0.1.1.*$/127.0.1.1 airsonic.example.com airsonic/g' /etc/hosts
Resultatene kan bekreftes med følgende:
hostname
hostname -f
Endre brannmurregler for å tillate innkommende SSH, HTTP, og HTTPStrafikk
Konfigurer UFW-brannmurregler for å kjøre en AirSonic-server:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Når du ser ledeteksten Command may disrupt existing ssh connections. Proceed with operation (y|n)?, skriv inn yog trykk deretter på ENTER.
Oppdater systemet
Av sikkerhets- og ytelsesformål er det nødvendig å oppdatere Ubuntu 18.04 LTS-systemet til siste status:
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Under oppgraderingen kan du bli informert om at den installerte versjonen av grub-konfigurasjonsfilen har blitt lokalt endret. Siden vi faktisk ikke er ansvarlige for endringen, bruk UPpilen for å markere install the package maintainer's versionalternativet, og trykk deretter ENTER.
Etter at systemet har startet på nytt, logger du på igjen som samme sudo-bruker for å gå videre.
Trinn 2: Installer OpenJDK Java Runtime Environment (JRE) 8
Installer OpenJDK JRE 8 og bekreft deretter resultatene:
sudo apt install -y openjdk-8-jre-headless
java -version
Utdataene fra den andre kommandoen vil være lik følgende:
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)
I tillegg må du sette opp JAVA_HOMEmiljøvariabelen som følger:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Trinn 3: Installer AirSonic
AirSonic kan distribueres ved hjelp av ulike metoder. I denne opplæringen vil vi installere AirSonic ved å bruke AirSonic WAR-pakken.
Opprett en dedikert bruker og en dedikert gruppe, begge kalt airsonic:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Last ned den nyeste AirSonic WAR-pakken, 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
Last ned de forhåndsdefinerte AirSonic-enhetsfilene systemdog start AirSonic-tjenesten:
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
Merk: Du må kanskje se gjennom og tilpasse de to AirSonic-enhetsfilene systemdpå din egen maskin.
Trinn 4: Test installasjonen
AirSonic vil være oppe og kjøre nå og lytte på port 8080. Du kan bruke følgende kommando for å bekrefte at dette er tilfellet:
ps -ef|grep airsonic
Du kan også besøke AirSonic-siden direkte, men du må midlertidig endre brannmurreglene først:
sudo ufw allow in 8080/tcp
Deretter peker du favorittnettleseren din til http://203.0.113.1:8080/airsonic, og bruker deretter standardlegitimasjonen oppført nedenfor for å logge på:
- Brukernavn:
admin
- Passord:
admin
Av sikkerhetshensyn bør du endre administratorens passord umiddelbart etter pålogging.
Når resultatet er bekreftet, begrense tilgangen på porten 8080igjen:
sudo ufw deny in 8080/tcp
Trinn 5: Skaff et Let's Encrypt SSL-sertifikat for din AirSonic-side
Av sikkerhetshensyn anbefales det å aktivere HTTPS-sikkerhet på alle nyopprettede nettsteder. Den mest praktiske praksisen for det er å distribuere et Let's Encrypt SSL-sertifikat som følger.
Installer Certbot-verktøyet:
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
Bruk Certbot til å søke om et Let's Encrypt SSL-sertifikat for domenet airsonic.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
Sertifikatet og kjeden vil bli lagret på følgende:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
Nøkkelfilen vil bli lagret her:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
Let's Encrypt SSL-sertifikatet er utformet for å utløpe om tre måneder. Du kan sette opp en cron-jobb for å fornye sertifikatene dine automatisk:
sudo crontab -e
Når du blir bedt om å velge en editor, skriv inn 2og trykk deretter for ENTERå velge /usr/bin/vim.basic.
Deretter trykker du på Oog legger til en ny linje som vist nedenfor:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Lagre og avslutt:
:wq!
Denne cron-jobben vil forsøke å oppdatere Let's Encrypt-sertifikatet hver dag ved middagstid.
Trinn 6: Installer Nginx som en omvendt proxy
Ved hjelp av Nginx kan du både lette besøkendes tilgang, (slik at de ikke lenger trenger å legge inn 8080portnummeret), og aktivere HTTPS-sikkerhet på AirSonic-nettstedet ditt.
Installer Nginx med APT:
sudo apt install -y nginx
Deretter oppretter du en konfigurasjonsfil for 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
Lag en symbolsk lenke som peker til den nyopprettede AirSonic Nginx-konfigurasjonsfilen:
sudo ln -s /etc/nginx/sites-available/airsonic.conf /etc/nginx/sites-enabled/
Start Nginx på nytt for å sette konfigurasjonen din i kraft:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Til slutt, pek favorittnettleseren din til http://airsonic.example.com/airsoniceller for https://airsonic.example.com/airsonicå begynne å utforske AirSonic-nettstedet ditt.