Preduvjeti
Korak 1: Osnovna konfiguracija sustava
Korak 2: Instalirajte OpenJDK Java Runtime Environment (JRE) 8
Korak 3: Instalirajte AirSonic
Korak 4: Testirajte instalaciju
Korak 5: Nabavite Let's Encrypt SSL certifikat za svoju AirSonic stranicu
Korak 6: Instalirajte Nginx kao obrnuti proxy
AirSonic je besplatni poslužitelj za streaming medija otvorenog koda. U ovom vodiču vodit ću vas kroz proces postavljanja instance AirSonic poslužitelja od nule na instanci poslužitelja CentOS 7.
Preduvjeti
- Novopostavljena instanca poslužitelja Vultr CentOS 7 s najmanje 2 GB memorije. Recimo da ima IPv4 adresu
203.0.113.1.
- Korisnik sudoa .
- Domena
airsonic.example.comkoja je usmjerena na gore spomenutu instancu poslužitelja.
Korak 1: Osnovna konfiguracija sustava
Napravite swap datoteku
Kako biste postigli bolje performanse sustava, preporučuje se da napravite swap datoteku od 2 GB (2048M) na računalu s 2 GB memorije:
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
Napomena: Ako koristite drugu veličinu poslužitelja, prikladna veličina swap particije može varirati.
Postavite ime računala i potpuno kvalificirani naziv domene (FQDN)
Za omogućavanje HTTPS sigurnosti s Let's Encrypt SSL certifikatom potrebno je ispravno postavljanje imena hosta i FQDN-a za stroj.
Sljedeće naredbe će postaviti ime hosta airsonici FQDN airsonic.example.comza stroj:
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
Rezultati se mogu potvrditi sljedećim:
hostname
hostname -f
Izmijenite pravila vatrozida kako biste dopustili ulazni HTTP i HTTPS promet
Uklonite zadani blok CentOS 7 na portovima 80( HTTP) i 443( HTTPS):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Instalirajte repo
Instalirajte EPEL YUM repo, a zatim ažurirajte sustav:
sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now
Nakon ponovnog pokretanja sustava, ponovno se prijavite kao isti sudo korisnik da biste nastavili dalje.
Korak 2: Instalirajte OpenJDK Java Runtime Environment (JRE) 8
Instalirajte OpenJDK JRE 8 i zatim potvrdite rezultat na CentOS 7:
sudo yum install -y java-1.8.0-openjdk.x86_64
java -version
Izlaz druge naredbe bit će sličan sljedećem:
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)
Osim toga, morate postaviti JAVA_HOMEvarijablu okruženja na sljedeći način:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Korak 3: Instalirajte AirSonic
AirSonic se može primijeniti raznim metodama. U ovom vodiču ćemo instalirati AirSonic koristeći AirSonic WAR paket.
Stvorite namjenskog korisnika i namjensku grupu, oba imena airsonic:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Preuzmite najnoviji AirSonic WAR paket:
cd /var/airsonic
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war
sudo chown -R airsonic:airsonic /var/airsonic
Preuzmite unaprijed definirane systemddatoteke AirSonic jedinice i zatim pokrenite AirSonic uslugu:
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
Napomena: Možda ćete morati pregledati i prilagoditi dvije systemddatoteke AirSonic jedinica na vlastitom računalu.
Korak 4: Testirajte instalaciju
AirSonic će sada biti u funkciji, slušajući na portu 8080. Možete koristiti sljedeću naredbu da potvrdite da je to slučaj:
ps -ef|grep airsonic
Također možete izravno posjetiti AirSonic stranicu, ali prvo morate privremeno izmijeniti pravila vatrozida:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld.service
Zatim usmjerite svoj omiljeni web preglednik na http://203.0.113.1:8080/airsonic, a zatim upotrijebite zadane vjerodajnice navedene u nastavku za prijavu:
- Korisničko ime:
admin
- Zaporka:
admin
Iz sigurnosnih razloga, trebali biste promijeniti lozinku administratora odmah nakon prijave.
Nakon što je rezultat potvrđen, ponovno ograničite pristup portu 8080:
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo systemctl reload firewalld.service
Korak 5: Nabavite Let's Encrypt SSL certifikat za svoju AirSonic stranicu
Zbog sigurnosnih razloga, preporuča se omogućiti HTTPS sigurnost na svakoj novoizrađenoj web stranici. Najprikladnija praksa za to je implementacija Let's Encrypt SSL certifikata na sljedeći način.
Instalirajte uslužni program Certbot na 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
Koristite Certbot da se prijavite za Let's Encrypt SSL certifikat za domenu airsonic.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
Certifikat i lanac bit će spremljeni na sljedeće:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
Ključna datoteka bit će spremljena ovdje:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
Let's Encrypt SSL certifikat je dizajniran da istječe za tri mjeseca. Možete postaviti cron posao da automatski obnovi svoje certifikate:
sudo crontab -e
Pritisnite I, a zatim unesite sljedeći unos:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Spremi i zatvori:
:wq
Ovaj cron posao će pokušati ažurirati certifikat Let's Encrypt svaki dan u podne.
Korak 6: Instalirajte Nginx kao obrnuti proxy
Uz pomoć Nginxa, posjetiteljima možete olakšati pristup (tako da više ne trebaju unositi 8080broj porta) i omogućiti HTTPS sigurnost na vašoj AirSonic web stranici.
Instalirajte Nginx koristeći YUM:
sudo yum install -y nginx
Zatim stvorite konfiguracijsku datoteku za 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
Ponovno pokrenite Nginx kako biste svoju konfiguraciju stavili na snagu:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Konačno, usmjerite svoj omiljeni web preglednik na http://airsonic.example.com/airsonicili https://airsonic.example.com/airsonickako biste počeli istraživati svoju AirSonic web stranicu.