Προαπαιτούμενα
Βήμα 1: Βασική διαμόρφωση συστήματος
Βήμα 2: Εγκαταστήστε το OpenJDK Java Runtime Environment (JRE) 8
Βήμα 3: Εγκαταστήστε το AirSonic
Βήμα 4: Δοκιμάστε την εγκατάσταση
Βήμα 5: Αποκτήστε ένα πιστοποιητικό Let's Encrypt SSL για τον ιστότοπό σας στην AirSonic
Βήμα 6: Εγκαταστήστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης
Το AirSonic είναι ένας δωρεάν διακομιστής ροής πολυμέσων ανοιχτού κώδικα. Σε αυτό το σεμινάριο, θα σας καθοδηγήσω στη διαδικασία ανάπτυξης μιας παρουσίας διακομιστή AirSonic από την αρχή σε μια παρουσία διακομιστή CentOS 7.
Προαπαιτούμενα
- Μια νέα παρουσία διακομιστή Vultr CentOS 7 με τουλάχιστον 2 GB μνήμης. Ας πούμε ότι έχει διεύθυνση IPv4
203.0.113.1.
- Ένας χρήστης sudo .
- Ένας τομέας
airsonic.example.comπου υποδεικνύεται στην παρουσία διακομιστή που αναφέρεται παραπάνω.
Βήμα 1: Βασική διαμόρφωση συστήματος
Δημιουργήστε ένα αρχείο ανταλλαγής
Προκειμένου να έχετε καλύτερη απόδοση του συστήματος, συνιστάται να δημιουργήσετε ένα αρχείο ανταλλαγής 2 GB (2048 M) σε ένα μηχάνημα με μνήμη 2 GB:
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
Σημείωση: Εάν χρησιμοποιείτε διαφορετικό μέγεθος διακομιστή, το κατάλληλο μέγεθος του διαμερίσματος swap ενδέχεται να διαφέρει.
Ρυθμίστε το όνομα κεντρικού υπολογιστή του μηχανήματος και το πλήρως πιστοποιημένο όνομα τομέα (FQDN)
Η σωστή ρύθμιση ενός ονόματος κεντρικού υπολογιστή και ενός FQDN για το μηχάνημα απαιτείται για την ενεργοποίηση της ασφάλειας HTTPS με ένα πιστοποιητικό Let's Encrypt SSL.
Οι ακόλουθες εντολές θα ρυθμίσουν ένα όνομα κεντρικού υπολογιστή airsonicκαι ένα FQDN airsonic.example.comγια το μηχάνημα:
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
Τα αποτελέσματα μπορούν να επιβεβαιωθούν με τα ακόλουθα:
hostname
hostname -f
Τροποποιήστε τους κανόνες του τείχους προστασίας για να επιτρέπεται η εισερχόμενη κίνηση HTTP και HTTPS
Καταργήστε το προεπιλεγμένο μπλοκ του CentOS 7 στις θύρες 80( HTTP) και 443( HTTPS):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Εγκαταστήστε το repo
Εγκαταστήστε το αποθετήριο EPEL YUM και στη συνέχεια ενημερώστε το σύστημα:
sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now
Μετά την επανεκκίνηση του συστήματος, συνδεθείτε ξανά ως ο ίδιος χρήστης sudo για να προχωρήσετε.
Βήμα 2: Εγκαταστήστε το OpenJDK Java Runtime Environment (JRE) 8
Εγκαταστήστε το OpenJDK JRE 8 και, στη συνέχεια, επιβεβαιώστε το αποτέλεσμα στο CentOS 7:
sudo yum install -y java-1.8.0-openjdk.x86_64
java -version
Η έξοδος της δεύτερης εντολής θα είναι παρόμοια με την ακόλουθη:
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)
Επιπλέον, πρέπει να ρυθμίσετε τη JAVA_HOMEμεταβλητή περιβάλλοντος ως εξής:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Βήμα 3: Εγκαταστήστε το AirSonic
Το AirSonic μπορεί να αναπτυχθεί χρησιμοποιώντας διάφορες μεθόδους. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε το AirSonic χρησιμοποιώντας το πακέτο AirSonic WAR.
Δημιουργήστε έναν αποκλειστικό χρήστη και μια αποκλειστική ομάδα, με το όνομα και τα δύο airsonic:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Κατεβάστε το πιο πρόσφατο πακέτο 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
Κατεβάστε τα προκαθορισμένα systemdαρχεία της μονάδας AirSonic και, στη συνέχεια, ξεκινήστε την υπηρεσία 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
Σημείωση: Ίσως χρειαστεί να ελέγξετε και να προσαρμόσετε τα δύο systemdαρχεία μονάδων AirSonic στο δικό σας μηχάνημα.
Βήμα 4: Δοκιμάστε την εγκατάσταση
Το AirSonic θα είναι σε λειτουργία τώρα, ακούγοντας στη θύρα 8080. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να επιβεβαιώσετε ότι συμβαίνει αυτό:
ps -ef|grep airsonic
Μπορείτε επίσης να επισκεφτείτε απευθείας τον ιστότοπο της AirSonic, αλλά πρέπει πρώτα να τροποποιήσετε προσωρινά τους κανόνες του τείχους προστασίας:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo systemctl reload firewalld.service
Στη συνέχεια, τοποθετήστε το αγαπημένο σας πρόγραμμα περιήγησης ιστού στο http://203.0.113.1:8080/airsonicκαι, στη συνέχεια, χρησιμοποιήστε τα προεπιλεγμένα διαπιστευτήρια που αναφέρονται παρακάτω για να συνδεθείτε:
- Όνομα χρήστη:
admin
- Κωδικός πρόσβασης:
admin
Για λόγους ασφαλείας, θα πρέπει να αλλάξετε τον κωδικό πρόσβασης του διαχειριστή αμέσως μετά τη σύνδεση.
Μόλις επιβεβαιωθεί το αποτέλεσμα, περιορίστε ξανά την πρόσβαση στη θύρα 8080:
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo systemctl reload firewalld.service
Βήμα 5: Αποκτήστε ένα πιστοποιητικό Let's Encrypt SSL για τον ιστότοπό σας στην AirSonic
Για λόγους ασφαλείας, συνιστάται η ενεργοποίηση της ασφάλειας HTTPS σε κάθε ιστότοπο που δημιουργήθηκε πρόσφατα. Η πιο βολική πρακτική για αυτό είναι η ανάπτυξη ενός πιστοποιητικού Let's Encrypt SSL ως εξής.
Εγκαταστήστε το βοηθητικό πρόγραμμα Certbot στο 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
Χρησιμοποιήστε το Certbot για να υποβάλετε αίτηση για πιστοποιητικό Let's Encrypt SSL για τον τομέα airsonic.example.com:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
Το πιστοποιητικό και η αλυσίδα θα αποθηκευτούν στα ακόλουθα:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
Το αρχείο κλειδιού θα αποθηκευτεί εδώ:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
Το πιστοποιητικό Let's Encrypt SSL έχει σχεδιαστεί για να λήξει σε τρεις μήνες. Μπορείτε να ρυθμίσετε μια εργασία cron για να ανανεώνει αυτόματα τα πιστοποιητικά σας:
sudo crontab -e
Πατήστε Iκαι, στη συνέχεια, εισάγετε την ακόλουθη καταχώρηση:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Αποθήκευση και έξοδος:
:wq
Αυτή η εργασία cron θα επιχειρήσει να ενημερώσει το πιστοποιητικό Let's Encrypt κάθε μέρα το μεσημέρι.
Βήμα 6: Εγκαταστήστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης
Με τη βοήθεια του Nginx, μπορείτε να διευκολύνετε την πρόσβαση των επισκεπτών (ώστε να μην χρειάζεται πλέον να εισάγουν τον 8080αριθμό θύρας) και να ενεργοποιήσετε την ασφάλεια HTTPS στον ιστότοπό σας στην AirSonic.
Εγκαταστήστε το Nginx χρησιμοποιώντας το YUM:
sudo yum install -y nginx
Στη συνέχεια, δημιουργήστε ένα αρχείο διαμόρφωσης για το 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
Επανεκκινήστε το Nginx για να θέσετε σε ισχύ τη διαμόρφωσή σας:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Τέλος, κατευθύνετε το αγαπημένο σας πρόγραμμα περιήγησης ιστού http://airsonic.example.com/airsonicή https://airsonic.example.com/airsonicγια να ξεκινήσετε την εξερεύνηση του ιστότοπού σας AirSonic.