← Back to blog

Ένας οδηγός για την επέκταση mod_proxy: Χρήση του Apache ως αντίστροφου διαμεσολαβητή

Category
Ένας οδηγός για την επέκταση mod_proxy: Χρήση του Apache ως αντίστροφου διαμεσολαβητή

Εισαγωγή

Οι επεκτάσεις τρίτων είναι εξαιρετικά χρήσιμες προσθήκες. Αυτές κάνουν την εμπειρία σας στην παραμετροποίηση και την εργασία με έναν διακομιστή, όπως ο Apache HTTP, πολύ πιο απλή και διευκολυντική. Σε περίπτωση ανάγκης, μπορείτε ακόμη και να χρησιμοποιήσετε ορισμένα από αυτά τα πρόσθετα στον Apache για να εκτελέσετε έναν αντίστροφο διακομιστή μεσολάβησης (reverse proxy). Μπορείτε είτε να αφαιρέσετε ένα επίπεδο από τη δομή του διακομιστή σας είτε να χρησιμοποιήσετε ένα πρόσθετο για να ανακατευθύνετε τις συνδέσεις.

Σε αυτόν τον οδηγό, θα συζητήσουμε για τον Apache και τα διάφορα πρόσθετα που σχετίζονται με την πλατφόρμα του διακομιστή, όπως το mod_proxy. Θα δούμε επίσης πώς μπορείτε να το χρησιμοποιήσετε ως reverse proxy για να ανακατευθύνετε τις συνδέσεις στους διακομιστές εφαρμογών backend σας.

Τι είναι ο Apache;

Apache είναι ένας HTTP server που χρησιμοποιείται πολύ συχνά για σκοπούς που σχετίζονται με τον ιστό. Αλλά μπορείτε να τον χρησιμοποιήσετε για διάφορους λόγους και σε πολλές πλατφόρμες. Μπορείτε να εγκαταστήσετε τον Apache web server σας στο Ubuntu ακολουθώντας τον βήμα προς βήμα οδηγό μας. Επιπλέον, ακολουθήστε αυτόν τον οδηγό για να μάθετε πώς να ασφαλίσετε τον Apache διακομιστή σας με το Let’s Encrypt. Μπορείτε επίσης να δείτε πώς να ρυθμίσετε εικονικούς οικοδεσπότες (virtual hosts) του Apache στο Ubuntu 20.04.

Μπορείτε να εξερευνήσετε περαιτέρω τις λειτουργίες και την υλοποίηση του Apache με τη βοήθεια εξωτερικών πρόσθετων. Αυτά είναι πρόσθετα τρίτων που μπορείτε να χρησιμοποιήσετε για να εκτελέσετε διάφορες εργασίες που σχετίζονται με συνδέσεις και ρυθμίσεις. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το πρόσθετο mod_rewrite για να εκτελέσετε αναγραφή URL βάσει κανόνων. Ένα άλλο από αυτά τα πρόσθετα είναι το mod_proxy. Το τελευταίο αυτό πρόσθετο χρησιμοποιείται ελάχιστα στην κοινότητα. Κυρίως επειδή πολλοί άνθρωποι δεν γνωρίζουν την έκταση της λειτουργικότητας και των εφαρμογών του. Το Mod_proxy, όπως υποδηλώνει το όνομα, μπορεί να σας βοηθήσει να δημιουργήσετε μια πύλη ή έναν διακομιστή μεσολάβησης για διακομιστές backend.

Ας εξερευνήσουμε το mod_proxy λεπτομερώς και πώς μπορείτε να το χρησιμοποιήσετε ως αντίστροφο διακομιστή μεσολάβησης.

Mod_proxy: Χρήση του Apache ως Αντίστροφου Διακομιστή Μεσολάβησης

Όπως πιθανώς μπορείτε να καταλάβετε, το mod_proxy είναι ένα πρόσθετο. Είναι ένα πρόσθετο στον Apache που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε και να ανακατευθύνετε διάφορες συνδέσεις. Μπορείτε επίσης να το ενεργοποιήσετε και να το ρυθμίσετε όπως οποιοδήποτε άλλο πρόσθετο στο σύστημά σας. Το μοναδικό με το mod_proxy είναι ότι δεν πρόκειται για ένα μόνο πρόσθετο. Στην πραγματικότητα, αποτελείται από μια συλλογή διαφορετικών πρόσθετων που θα βρείτε παρακάτω. Κάθε ένα από αυτά έχει τη δική του λειτουργία να επιτελέσει. Με αυτόν τον τρόπο, το mod_proxy σας προσφέρει μεγάλη ποικιλία στη λειτουργικότητα.

Ρίξτε μια ματιά στα ακόλουθα πρόσθετα του mod_proxy:

mod_proxy

Αυτό είναι το κύριο πρόσθετο μεσολάβησης. Στον Apache, μπορείτε να χρησιμοποιήσετε αυτό το πρόσθετο για να ρυθμίσετε και να διαχειριστείτε διάφορες συνδέσεις. Μπορεί επίσης να σας βοηθήσει να ανακατευθύνετε συνδέσεις.

mod_proxy_http

Όπως υποδηλώνει το όνομα, αυτό το πρόσθετο ασχολείται με τα πρωτόκολλα HTTP και HTTPS. Μπορείτε να χρησιμοποιήσετε αυτό το πρόσθετο για να εφαρμόσετε τις δυνατότητες μεσολάβησης αυτών των πρωτοκόλλων.

mod_proxy_ftp

Το mod_proxy_ftp λειτουργεί όταν εργάζεστε με το πρωτόκολλο FTP.

mod_proxy_connect

Αυτό το πρόσθετο είναι χρήσιμο όταν εκτελείτε διοχέτευση SSL.

mod_proxy_ajp

Μπορείτε να χρησιμοποιήσετε το mod_proxy_ajp όταν εργάζεστε με το πρωτόκολλο AJP.

mod_proxy_wstunnel

Αυτό είναι χρήσιμο όταν εργάζεστε με web sockets όπως τα WS και WSS.

mod_proxy_balancer

Αν θέλετε να αποκτήσετε πρόσβαση σε λειτουργίες εξισορρόπησης φορτίου και ομαδοποίησης, τότε μπορείτε να χρησιμοποιήσετε αυτό το πρόσθετο.

mod_cache

Το πρόσθετο mod_cache είναι χρήσιμο, όπως αναμένεται, για σκοπούς προσωρινής αποθήκευσης.

mod_headers

Μπορείτε να χρησιμοποιήσετε αυτό το πρόσθετο για να διαχειριστείτε τις κεφαλίδες που δημιουργείτε χρησιμοποιώντας το πρωτόκολλο HTTP.

mod_deflate

Αυτό το πρόσθετο χρησιμοποιείται για σκοπούς συμπίεσης.

Αν θέλετε να μάθετε ακόμα περισσότερες λεπτομέρειες σχετικά με αυτά τα πρόσθετα, μπορείτε να επισκεφθείτε τον επίσημο ιστότοπο του Apache. Η επίσημη τεκμηρίωση σας παρέχει επίσης περισσότερες πληροφορίες σχετικά με το mod_proxy και τον ίδιο τον Apache.

Πώς να εγκαταστήσετε τον Apache και το mod_proxy;

Ακολουθούν μερικά εύκολα βήματα για να εγκαταστήσετε τον Apache και το mod_proxy στο σύστημά σας:

  1. Προετοιμασία του Διακομιστή

Πρώτα απ' όλα, πρέπει να βεβαιωθείτε ότι ο cloud διακομιστής σας είναι προετοιμασμένος. Για να το κάνετε αυτό, πρέπει να ενημερώσετε το λειτουργικό σας σύστημα και το σχετικό λογισμικό στις τελευταίες εκδόσεις.

Χρησιμοποιήστε τις ακόλουθες εντολές για να αναβαθμίσετε τις εφαρμογές σας:

  1. Εγκατάσταση του Πακέτου Βασικών Στοιχείων

Μόλις προετοιμάσετε τον διακομιστή σας, πρέπει να τον εξοπλίσετε με τα απαραίτητα εργαλεία. Για τον σκοπό αυτό, πρέπει να εγκαταστήσετε το πακέτο build-essential. Αυτό το πακέτο αποτελείται από όλα τα βασικά εργαλεία που χρειάζεστε για να εγκαταστήσετε πράγματα από τον πηγαίο κώδικα. Μπορείτε να το εγκαταστήσετε με αυτήν την εντολή:

  1. Λήψη των πρόσθετων (Modules) και των εξαρτήσεων

Τέλος, πρέπει να εγκαταστήσετε τα πρόσθετα και τις εξαρτήσεις. Μπορείτε να το κάνετε εκτελώντας την ακόλουθη εντολή:

Ενεργοποίηση πρόσθετων: Πώς να ρυθμίσετε τον Apache με συνδέσεις Proxy;

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

Αρχικά, πρέπει να ελέγξετε ποια πρόσθετα λειτουργούν ήδη στο σύστημά σας. Όχι μόνο αυτό, αλλά πρέπει επίσης να βεβαιωθείτε ότι όλα τα πρόσθετα είναι εγκατεστημένα σωστά και μπορούν να ενεργοποιηθούν. Η εκτέλεση αυτής της εντολής θα εμφανίσει όλα τα διαθέσιμα πρόσθετα στον διακομιστή Apache σας:

a2enmod output

Όπως μπορείτε να δείτε, η απάντηση σας δείχνει όλα τα διαθέσιμα πρόσθετα με τη μορφή μιας αναλυτικής λίστας. Περιηγηθείτε σε αυτήν τη λίστα και προσδιορίστε ποια πρόσθετα θέλετε να ενεργοποιήσετε. Για να ενημερώσετε τον Apache, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή και να εισαγάγετε τα επιθυμητά πρόσθετα στη θέση των παραδειγμάτων:

Από την άλλη πλευρά, μπορείτε επίσης να ενεργοποιήσετε κάθε πρόσθετο ξεχωριστά. Για να το κάνετε αυτό, θα χρησιμοποιούσατε τις ακόλουθες εντολές:

Ορισμένα πρόσθετα πιθανότατα θα είναι ενεργοποιημένα από προεπιλογή στον διακομιστή σας. Ίσως αναρωτιέστε πώς μπορείτε να επιβεβαιώσετε ότι είναι ενεργοποιημένα. Για να βεβαιωθείτε ότι το επιθυμητό πρόσθετο είναι ενεργό, μπορείτε να προσπαθήσετε να το ενεργοποιήσετε δύο φορές. Αυτό θα εγγυηθεί ότι το πρόσθετο είναι ενεργοποιημένο.

  1. Τροποποίηση των προεπιλεγμένων ρυθμίσεων παραμετροποίησης

Αρχικά, πρέπει να αλλάξετε τις προεπιλεγμένες ρυθμίσεις παραμετροποίησης. Για να το κάνετε αυτό, πρέπει να αποκτήσετε πρόσβαση στο προεπιλεγμένο αρχείο ρυθμίσεων, το οποίο είναι το 000-default.conf. Αυτό το αρχείο βρίσκεται μέσα στο /etc/apache2/sites-enabled. Πρέπει να το τροποποιήσουμε έτσι ώστε να αποκτήσει τη λειτουργία proxy.

Θα ξεκινήσετε ανοίγοντας τον επεξεργαστή κειμένου nano για να επεξεργαστείτε τον προεπιλεγμένο εικονικό κεντρικό υπολογιστή (virtual host). Μπορείτε να το κάνετε αυτό εκτελώντας αυτήν την εντολή:

Θα αναφερόμαστε συλλογικά στα mod_virtual host και mod_proxy ως proxy virtual host. Τώρα, μπορείτε να εφαρμόσετε τις ακόλουθες ρυθμίσεις παραμετροποίησης. Μπορείτε να κάνετε τις απαραίτητες αλλαγές όπως κρίνετε κατάλληλο για το σύστημά σας και τις απαιτήσεις σας:

Μπορείτε να αποθηκεύσετε και να εξέλθετε αφού πατήσετε Ctrl + X και επιβεβαιώσετε με Y.

  1. Ενεργοποίηση της λειτουργίας εξισορρόπησης φορτίου (Load Balancing)

Η εξισορρόπηση φορτίου (Load balancing) σας βοηθά να κατανέμετε αποτελεσματικά τις συνδέσεις στον proxy σας. Αυτή είναι μια πολύ χρήσιμη ιδέα για όταν χρησιμοποιείτε πολλούς διακομιστές εφαρμογών backend αντί για έναν μόνο. Η λειτουργία εξισορρόπησης φορτίου θα κατανείμει τη σύνδεση ή το «φορτίο».

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

  1. Ενεργοποίηση υποστήριξης Reverse Proxy

Θα χρειαστεί να κάνετε έναν εικονικό διακομιστή να υποστηρίζει τον reverse proxy σας εάν εργάζεστε με SSL συνδέσεις και πιστοποιητικά. Αυτός ο δευτερεύων εικονικός διακομιστής πρέπει να έχει τις ακόλουθες ρυθμίσεις. Θα χρειαστεί να εκτελέσετε τις οδηγίες των προηγούμενων βημάτων. Το μόνο που έχετε να κάνετε είναι να αντικαταστήσετε τις επιλογές διαμόρφωσης με αυτές που αναφέρονται παρακάτω:

Θα πρέπει επίσης να ενεργοποιήσετε το πρόσθετο SSL για να λειτουργήσει η παραπάνω διαμόρφωση:

  1. Επανεκκίνηση του Apache

Όλες οι ρυθμίσεις έχουν ολοκληρωθεί. Τέλος, μπορείτε να επανεκκινήσετε τον διακομιστή Apache για να εφαρμόσετε τις αλλαγές. Μπορείτε να επανεκκινήσετε τον Apache εκτελώντας την ακόλουθη εντολή:

Συμπέρασμα

Voila! Μόλις ρυθμίσατε με επιτυχία μια πύλη reverse proxy στον διακομιστή Apache σας. Τώρα ο Apache θα ανακατευθύνει τις εισερχόμενες συνδέσεις στους διακομιστές εφαρμογών σας στο backend.

Το εξαιρετικό με αυτό είναι ότι η διαδικασία διαμόρφωσης απαιτεί ελάχιστη προσπάθεια και είναι αρκετά απλή. Τώρα που γνωρίζετε τα ακριβή βήματα για να φτάσετε εκεί, δεν θα δυσκολευτείτε καθόλου να ρυθμίσετε έναν reverse proxy στον Apache.

Καλή συνέχεια!

Akshay Nagpal

Συγγραφέας · CloudSigma

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.