Η χρήση του NGINX ως αντίστροφου διακομιστή μεσολάβησης είναι μια δημοφιλής επιλογή. Για να το ρυθμίσετε, το μόνο που πρέπει να κάνετε είναι να εγκαταστήσετε το NGINX, να δημιουργήσετε ένα αρχείο ρυθμίσεων και να προσαρμόσετε τις ρυθμίσεις του διακομιστή σας. Μπορείτε επίσης να ελέγξετε αν η ρύθμιση ολοκληρώθηκε με επιτυχία χρησιμοποιώντας το Gunicorn.

Πώς να ρυθμίσετε το NGINX ως αντίστροφο διακομιστή μεσολάβησης

Οι αντίστροφοι διακομιστές μεσολάβησης μπορούν να συμβάλουν στην ενίσχυση της ασφάλειας, της ευελιξίας και της διαθεσιμότητας των πόρων. Τοποθετούνται μεταξύ του πελάτη και του διακομιστή και δεν είναι ορατοί στους χρήστες. Ο αντίστροφος διακομιστής μεσολάβησης NGINX αποτελεί μια ιδιαίτερα συνιστώμενη λύση για εισερχόμενες αιτήσεις. Παρακάτω θα εξηγήσουμε πώς να τον εγκαταστήσετε και να τον ρυθμίσετε στο Ubuntu 22.04.

Ποιες είναι οι απαιτήσεις συστήματος για το NGINX ως αντίστροφο διακομιστή μεσολάβησης;

Για να ρυθμίσετε έναν αντίστροφο διακομιστή μεσολάβησης NGINX στο Ubuntu 22.04, θα χρειαστείτε τα εξής:

  • Ένας πλήρως διαμορφωμένος διακομιστής Ubuntu
  • Η διεύθυνση IP του διακομιστή ή η υποδοχή τομέα Unix
  • Ο τομέας του διακομιστή σας
  • sudo δικαιώματα για τον διακομιστή

Εγκατάσταση του NGINX ως αντίστροφου διακομιστή μεσολάβησης

Πρώτα, ενημερώστε το αποθετήριο σας μέσω του τερματικού, ώστε να έχετε πρόσβαση στα πιο πρόσφατα πακέτα. Στη συνέχεια, εγκαταστήστε το NGINX χρησιμοποιώντας την εντολή apt install. Ακολουθεί ο κώδικας:

$ sudo apt update
$ sudo apt install nginx
bash

Επιβεβαιώστε πατώντας [Y] και πατήστε [Enter] για να εφαρμόσετε τις ρυθμίσεις.

Στη συνέχεια, ρυθμίστε το τείχος προστασίας σας έτσι ώστε το NGINX να έχει πρόσβαση στον διακομιστή σας. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να προσθέσετε μια εξαίρεση:

$ sudo ufw allow 'Nginx HTTP'
bash

Στη συνέχεια, βεβαιωθείτε ότι η εγκατάσταση ολοκληρώθηκε με επιτυχία:

$ systemctl status nginx
bash

Εάν το NGINX έχει εγκατασταθεί σωστά, θα εμφανιστεί ένα αποτέλεσμα που θα μοιάζει με αυτό:

nginx.service - A high performance web server and a reverse proxy server
      Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
      Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
         Docs: man:nginx(8)
    Main PID: 9919 (nginx)
        Tasks: 2 (limit: 2327)
      Memory: 2.9M
          CPU: 50ms
      CGroup: /system.slice/nginx.service
                 ├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
                 └─9920 "nginx: worker process"
bash

Δημιουργία του αρχείου ρυθμίσεων και προσαρμογή του διακομιστή

Τώρα μπορείτε να διαμορφώσετε το server block σας, ώστε να προετοιμάσετε τον αντίστροφο διακομιστή μεσολάβησης NGINX για το σύστημά σας. Για να το κάνετε αυτό, δημιουργήστε και ανοίξτε ένα νέο αρχείο διαμόρφωσης με τον επεξεργαστή κειμένου Nano. Πληκτρολογήστε την ακόλουθη εντολή και φροντίστε να αντικαταστήσετε τον σύμβολο κράτησης θέσης «your_domain» με το όνομα του domain σας:

$ sudo nano /etc/nginx/sites-available/your_domain
bash

Όταν το αρχείο είναι ανοιχτό, προσθέστε το παρακάτω περιεχόμενο. Αντικαταστήστε τους χαρακτήρες-κλειδιά «your_domain» και «server_address» με τον τομέα και τη διεύθυνση IP ή το Unix domain socket του διακομιστή σας:

server {
    listen 80;
    listen [::]:80;
    server_name your_domain www.your_domain;
        
    location / {
        proxy_pass http://server_address;
        include /etc/nginx/proxy_params;
    }
}
txt

Αποθηκεύστε και κλείστε το αρχείο. Το περιεχόμενο που εμφανίζεται είναι η προεπιλεγμένη ρύθμιση για το NGINX. Χρησιμοποιεί τη θύρα 80 για να ανταποκρίνεται στα αιτήματα από τον τομέα και τον διακομιστή σας. proxy_pass αποτελεί βασικό στοιχείο για τη λειτουργία του NGINX ως αντίστροφου διακομιστή μεσολάβησης. Μπορείτε επίσης να ρυθμίσετε επιπλέον διακομιστές, αν χρειαστεί.

Στη συνέχεια, δημιουργήστε έναν σύνδεσμο προς τον κατάλογο sites-enabled στον οποίο έχει πρόσβαση το NGINX κατά την εκκίνηση. Χρησιμοποιήστε την παρακάτω εντολή και μην ξεχάσετε να αντικαταστήσετε τον σύμβολο-κλειδί «your_domain»:

$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/
bash

Ελέγξτε τη διαμόρφωσή σας για τυχόν σφάλματα:

$ sudo nginx -t
bash

Εάν δεν εμφανιστεί κανένα μήνυμα σφάλματος, μπορείτε πλέον να επανεκκινήσετε τον αντίστροφο διακομιστή μεσολάβησης NGINX για να εφαρμοστούν οι ρυθμίσεις. Για να το κάνετε αυτό, πληκτρολογήστε την ακόλουθη εντολή:

$ sudo systemctl restart nginx
bash

Τώρα ολοκληρώσατε τη ρύθμιση του NGINX ως αντίστροφου διακομιστή μεσολάβησης. Στην επόμενη ενότητα, εξηγούμε πώς να ελέγξετε τον διακομιστή μεσολάβησης. Ωστόσο, αυτή η δοκιμή είναι προαιρετική.

Έλεγχος του αντίστροφου διακομιστή μεσολάβησης NGINX με το Gunicorn

Αν επιλέξετε να δοκιμάσετε τον αντίστροφο διακομιστή μεσολάβησης NGINX, συνήθως μπορείτε να χρησιμοποιήσετε τον δικό σας διακομιστή για αυτόν τον σκοπό. Αν χρησιμοποιήσετε τον δικό σας διακομιστή, ανοίξτε τον μέσω της γραμμής εντολών. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τον ελαφρύ διακομιστή ιστού HTTP Gunicorn, ο οποίος λειτουργεί πολύ καλά με έναν αντίστροφο διακομιστή μεσολάβησης NGINX. Πρώτα ενημερώστε τα πακέτα και εγκαταστήστε τον διακομιστή:

$ sudo apt update
$ sudo apt install gunicorn
bash

Στη συνέχεια, δημιουργήστε μια απλή συνάρτηση για να την στείλετε ως απόκριση HTTP στον περιηγητή σας. Χρησιμοποιήστε ξανά το nano:

$ nano test.py
bash

Ανοίξτε το αρχείο και εισάγετε τον ακόλουθο κώδικα:

def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"This is a test"])
txt

Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο. Μετά, ξεκινήστε το Gunicorn και ανοίξτε το δοκιμαστικό module:

$ gunicorn --worker=2 test:app
bash

Το αποτέλεσμα θα πρέπει να μοιάζει περίπου με αυτό:

[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570
bash

Αυτή είναι η επιβεβαίωση ότι το Gunicorn επικοινωνεί με τη διεύθυνση http://127.0.0.1:8000. Τέλος, ανοίξτε τον περιηγητή σας και μεταβείτε στον τομέα που διαμορφώσατε με το NGINX. Ο αντίστροφος διακομιστής μεσολάβησης NGINX θα εμφανίσει το μήνυμα «This is a test».

Go to Main Menu