Πώς να εγκαταστήσετε και να ρυθμίσετε το Nextcloud με το NGINX
Η λειτουργία του Nextcloud με το NGINX επιτρέπει την αποδοτική χρήση των πόρων του συστήματος, καθώς και ευέλικτες επιλογές εγκατάστασης. Για να το ρυθμίσετε σωστά, θα χρειαστείτε ένα συμβατό περιβάλλον συστήματος και τη σωστή διαμόρφωση. Απαιτούνται επίσης μερικές συγκεκριμένες ρυθμίσεις για την ομαλή ενσωμάτωση με το NGINX.
Τι είναι το NGINX και γιατί να το συνδυάσετε με το Nextcloud;
Το NGINX είναι ένα λογισμικό διακομιστή ιστού ανοιχτού κώδικα που μπορεί επίσης να λειτουργήσει ως διακομιστής αντίστροφου διακομιστή μεσολάβησης, εξισορροπητής φορτίου και προσωρινή μνήμη HTTP. Αναπτύχθηκε αρχικά από τον Ρώσο μηχανικό λογισμικού Igor Sysoev και διανέμεται υπό την άδεια BSD (το BSD είναι μια παραλλαγή του Unix).
Το NGINX έχει σχεδιαστεί για να διαχειρίζεται ταυτόχρονα μεγάλο αριθμό συνδέσεων. Για τον σκοπό αυτό, το λογισμικό χρησιμοποιεί μια αρχιτεκτονική που βασίζεται σε συμβάντα και δεν προκαλεί μπλοκάρισμα. Σε αντίθεση με τους παραδοσιακούς διακομιστές ιστού, οι οποίοι δημιουργούν μια νέα διεργασία ή ένα νέο νήμα για κάθε σύνδεση, το NGINX εκτελεί μια κύρια διεργασία παράλληλα με πολλές διεργασίες-εργαζόμενους. Η κύρια διεργασία διαχειρίζεται τη διαμόρφωση, ενώ οι διεργασίες-εργαζόμενοι επεξεργάζονται τα εισερχόμενα αιτήματα των πελατών.
Ο συνδυασμός του Nextcloud με το NGINX προσφέρει πολλά σημαντικά πλεονεκτήματα για περιβάλλοντα υψηλής απόδοσης, όπως:
- Αποδοτική χρήση πόρων: Το NGINX μπορεί να διαχειρίζεται πολλές συνδέσεις ταυτόχρονα, με ελάχιστη κατανάλωση πόρων.
- Εξαιρετική επεκτασιμότητα: Το NGINX υποστηρίζει ευέλικτη εξισορρόπηση φορτίου και είναι εύκολα επεκτάσιμο με την προσθήκη επιπλέον διακομιστών.
- Αρχιτεκτονική με υψηλό βαθμό προσαρμογής: Χάρη στη δομοστοιχειωτή δομή του, το NGINX μπορεί να προσαρμοστεί ώστε να ταιριάζει σε ένα ευρύ φάσμα σεναρίων.
- Αξιόπιστη απόδοση υπό βαρύ φορτίο διακομιστή: Ακόμη και όταν ο διακομιστής βρίσκεται υπό βαριά χρήση, το NGINX παραμένει αξιόπιστο, διατηρώντας τις υπηρεσίες σας συνεχώς διαθέσιμες.
Δεδομένου ότι το Nextcloud υποστηρίζει επίσημα μόνο τον Apache 2.x ως διακομιστή ιστού, δεν υπάρχει επίσημη υποστήριξη για τον NGINX. Η χρήση του Nextcloud με τον NGINX συνιστάται, επομένως, κυρίως σε χρήστες με εμπειρία στη διαμόρφωση διακομιστών ιστού.
Ποιες είναι οι απαιτήσεις για τη λειτουργία του Nextcloud με το NGINX;
Για να εκτελέσετε το Nextcloud στο NGINX, θα χρειαστείτε έναν διακομιστή που να λειτουργεί με Ubuntu, Debian ή άλλο συμβατό λειτουργικό σύστημα. Ο διακομιστής θα πρέπει να διαθέτει τουλάχιστον 4 GB μνήμης RAM και δύο επεξεργαστές. Για μεγαλύτερες εγκαταστάσεις με πολλαπλές εφαρμογές Nextcloud, συνιστάται ανεπιφύλακτα η χρήση περισσότερης μνήμης και περισσότερων πυρήνων επεξεργαστή. Θα χρειαστείτε επίσης επαρκή χώρο αποθήκευσης για δεδομένα και αντίγραφα ασφαλείας.
Για την εγκατάσταση, θα χρειαστείτε επίσης μια συμβατή βάση δεδομένων, όπως MySQL ή MariaDB, καθώς και τη γλώσσα προγραμματισμού PHP (ελάχιστη έκδοση 8.1, συνιστάται η έκδοση 8.3). Η βάση δεδομένων χρησιμοποιείται για την αποθήκευση δεδομένων χρηστών και δεδομένων προσθηκών, καθώς και μεταδεδομένων αρχείων. Η PHP απαιτείται για την εκτέλεση των βασικών λειτουργιών του Nextcloud. Θα χρειαστείτε επίσης έναν λογαριασμό με δικαιώματα διαχειριστή για να εγκαταστήσετε το λογισμικό.
Πώς να εγκαταστήσετε το Nextcloud με το NGINX
Πριν από την εγκατάσταση του Nextcloud, πρέπει να ολοκληρωθούν ορισμένες βασικές προετοιμασίες. Ο παρών οδηγός προϋποθέτει τη χρήση ενός διακομιστή Ubuntu, στον οποίο το λειτουργικό σύστημα και όλες οι απαιτούμενες εξαρτήσεις έχουν ήδη εγκατασταθεί. Σε αυτές περιλαμβάνονται ο NGINX ως διακομιστής ιστού, το MySQL ως βάση δεδομένων και το PHP 8.3 με όλες τις απαραίτητες επεκτάσεις.
Έχουμε επίσης εγκαταστήσει το Certbot για την εύκολη ρύθμιση πιστοποιητικών SSL με το Let’s Encrypt. Υποθέτουμε επίσης ότι έχετε ρυθμίσει έναν τομέα, ώστε να μπορείτε να έχετε πρόσβαση στο Nextcloud μέσω μιας διεύθυνσης URL και όχι μέσω μιας διεύθυνσης IP.
Μπορείτε επίσης να ακολουθήσετε τα σεμινάριά μας για να μάθετε πώς να εγκαταστήσετε το Nextcloud στο Ubuntu 22.04, να ρυθμίσετε το Nextcloud στο Kubernetes ή να εγκαταστήσετε το Nextcloud στο Debian 12.
Πώς να κατεβάσετε και να αποσυμπιέσετε το Nextcloud
Ξεκινήστε δημιουργώντας έναν φάκελο με το όνομα «nextcloud» στον αρχικό σας κατάλογο για να αποθηκεύσετε τα αρχεία εγκατάστασης. Αν και αυτό μπορεί να γίνει χειροκίνητα μέσω του αρχείου αλλαγών του Nextcloud, είναι πιο γρήγορο να χρησιμοποιήσετε την ακόλουθη εντολή Curl:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashΕάν εγκαθιστάτε μια διαφορετική έκδοση του Nextcloud, φροντίστε να ενημερώσετε τη διεύθυνση URL αναλόγως.
Στη συνέχεια, αποσυμπιέστε το αρχείο, μετακινήστε το στον ριζικό κατάλογο του ιστότοπου ./var/www και ορίστε τα δικαιώματα πρόσβασης του αρχείου:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashΠώς να ρυθμίσετε τη βάση δεδομένων
Για να ρυθμίσετε τη βάση δεδομένων MySQL, εκτελέστε την εντολή sudo sudo mysql_secure_installation. Πληκτρολογήστε «y» για να ορίσετε τον κωδικό πρόσβασης root (VALIDATE PASSWORD) και επιλέξτε «2» για έναν ισχυρό κωδικό πρόσβασης (STRONG), τον οποίο μπορείτε στη συνέχεια να ορίσετε. Πατήστε «y» για να επιβεβαιώσετε τον κωδικό πρόσβασης και, στη συνέχεια, πατήστε ξανά «y» για να καταργήσετε τους ανώνυμους χρήστες, να απενεργοποιήσετε τις απομακρυσμένες συνδέσεις, να καταργήσετε τη δοκιμαστική βάση δεδομένων και να φορτώσετε εκ νέου τους πίνακες δικαιωμάτων.
Στη συνέχεια, ακολουθήστε τα παρακάτω βήματα:
- Συνδεθείτε ως χρήστης root χρησιμοποιώντας
sudo mysql -u root -p. - Δημιουργήστε τη βάση δεδομένων χρησιμοποιώντας:
create database nextcloud;. - Δημιουργήστε τον χρήστη χρησιμοποιώντας:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Χορηγήστε δικαιώματα χρησιμοποιώντας:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Τέλος, ενημερώστε τα δικαιώματα χρησιμοποιώντας
flush privileges;και βγείτε από την κονσόλα της βάσης δεδομένων χρησιμοποιώνταςexit.
Μόλις ολοκληρωθεί η εγκατάσταση της βάσης δεδομένων, πρέπει να προσθέσετε τα στοιχεία σύνδεσης (DB_NAME, DB_USER, DB_PASSWORD) στο αρχείο ρυθμίσεων του Nextcloud. Ανοίξτε το αρχείο ./var/www/nextcloud/config/config.php και προσθέστε τις σχετικές καταχωρήσεις:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtΠώς να απενεργοποιήσετε την προεπιλεγμένη ρύθμιση του NGINX
Πριν ενσωματώσετε το Nextcloud στο NGINX, πρέπει να βεβαιωθείτε ότι κανένα άλλο αρχείο ρυθμίσεων δεν παρακάμπτει την εγκατάσταση του Nextcloud. Από προεπιλογή, ενδέχεται να υπάρχει ακόμα default αρχείο ρυθμίσεων στο ./etc/nginx/sites-enabled/ που θα μπορούσε να επηρεάσει τη ρύθμισή σας. Διαγράψτε το χρησιμοποιώντας:
sudo rm /etc/nginx/sites-enabled/defaultbashΣτη συνέχεια, ενεργοποιήστε την προσαρμοσμένη ρύθμισή σας με την παρακάτω εντολή:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashΠώς να ρυθμίσετε τον διακομιστή NGINX
Για να ρυθμίσετε το NGINX ως διακομιστή ιστού, θα πρέπει να έχει ήδη ρυθμιστεί ένας τομέας και να έχει συνδεθεί με τη διεύθυνση IP του διακομιστή. Βεβαιωθείτε ότι και το DNS έχει ρυθμιστεί σωστά. Δημιουργήστε ένα νέο αρχείο ρυθμίσεων NGINX στον κατάλογο sites-available χρησιμοποιώντας:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(Χρησιμοποιήσαμε exampledomain.co.uk ως διεύθυνση URL.)
Ανοίξτε το αρχείο ρυθμίσεων σε ένα πρόγραμμα επεξεργασίας κειμένου (όπως το Vim) χρησιμοποιώντας:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashΕισάγετε το τμήμα κώδικα από την ενότητα «Nextcloud σε υποφάκελο των webroots του NGINX» της τεκμηρίωσης για τη διαμόρφωση του Nextcloud στο NGINX.
Δεδομένου ότι το πιστοποιητικό HTTPS θα προστεθεί μέσω του Certbot, διαγράψτε όλες τις γραμμές που σχετίζονται με το SSL από το αρχείο ρυθμίσεων του NGINX. Το Certbot θα τις διαχειριστεί αυτόματα.
Πώς να ρυθμίσετε ένα πιστοποιητικό SSL με το Certbot
Για να εκτελέσετε το Nextcloud μέσω ασφαλούς σύνδεσης HTTPS, πρέπει να ρυθμίσετε ένα πιστοποιητικό SSL, στην περίπτωση αυτή από το Let’s Encrypt. Αρχικά, ρυθμίστε το τείχος προστασίας ώστε να επιτρέπει συνδέσεις HTTPS και SSH χρησιμοποιώντας τις ακόλουθες εντολές sudo:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashΣτη συνέχεια, ενεργοποιήστε το τείχος προστασίας με το βήμα sudo ufw enable και ελέγξτε με sudo ufw status για να βεβαιωθείτε ότι οι συνδέσεις επιτρέπονται. Έπειτα, μπορείτε να δημιουργήσετε το πιστοποιητικό SSL χρησιμοποιώντας το Certbot:
sudo certbot --nginx -d exampledomain.co.ukbashΑκολουθήστε τις οδηγίες για να εισαγάγετε τη διεύθυνση email σας για την ανανέωση των πιστοποιητικών και να αποδεχτείτε τους όρους χρήσης. Επιλέξτε την επιλογή 2 για να ανακατευθύνετε αυτόματα όλα τα αιτήματα HTTP σε HTTPS. Το Certbot αποθηκεύει τα αρχεία πιστοποιητικών στον κατάλογο .etc/letsencrypt/live/exampledomain.co.uk/. Το αρχείο fullchain.pem περιέχει το πιστοποιητικό SSL, ενώ privkey.pem περιέχει το ιδιωτικό κλειδί. Πρέπει να τα προσθέσετε στο αρχείο διαμόρφωσης του NGINX:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtΔεδομένου ότι το Certbot τροποποίησε το αρχείο ρυθμίσεων, πρέπει να προσθέσετε ξανά το χαρακτηριστικό ssl μεταξύ 443 και http2. Το τμήμα θα πρέπει να έχει την εξής μορφή:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtΠώς να επανεκκινήσετε τις υπηρεσίες και να συνδεθείτε στο Nextcloud
Για να εφαρμοστούν οι αλλαγές, πρέπει να επανεκκινήσετε τις υπηρεσίες PHP-FPM και NGINX:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashΤώρα, ανοίξτε τον τομέα σας στον περιηγητή — στην περίπτωσή μας, το exampledomain.co.uk. Εάν όλα έχουν ρυθμιστεί σωστά, θα εμφανιστεί η σελίδα καλωσορίσματος του Nextcloud.
Εάν το Nextcloud δεν φορτώνεται, αυτό μπορεί να οφείλεται στο γεγονός ότι ο τομέας σας δεν έχει καταχωριστεί ως «Αξιόπιστος τομέας» στο config.php. Προσθέστε τον εκεί για να επιλύσετε το πρόβλημα.