Η διαφορά μεταξύ Apache και Tomcat και γιατί πρέπει να συνεργάζονται.


Ημερομηνία δημοσίευσης:1 Ιανουαρίου 2021.



INFOMARTION > Η διαφορά μεταξύ Apache και Tomcat και γιατί πρέπει να συνεργάζονται.

Επισκόπηση.

Θα ήθελα να περιγράψω τις διαφορές μεταξύ Apache και Tomcat και γιατί πρέπει να συνδεθούν, κάτι για το οποίο δεν μπόρεσα να βρω μια ικανοποιητική απάντηση όταν ήμουν νέος, ακόμη και αφού ρώτησα τους ανωτέρους μου και έψαξα στο διαδίκτυο. Μερικές φορές λέγεται ότι ο Apache είναι ένας διακομιστής ιστού (εκτελεί στατική επεξεργασία) και ο Tomcat είναι ένας περιέκτης servlet (εκτελεί δυναμική επεξεργασία) (όπως μου είπε ένας ανώτερος συνάδελφος όταν ήμουν νέος), αλλά ο Tomcat έχει επίσης λειτουργίες διακομιστή ιστού αν εξεταστεί προσεκτικά. Τότε θα νομίζατε ότι το Tomcat είναι το μόνο που χρειάζεστε. Αυτό τελικά οδηγεί στο ερώτημα γιατί ο Apache και ο Tomcat πρέπει να συνδέονται μαζί. Για όσους το κάνουν, θα ήθελα να εξηγήσω τις διαφορές μεταξύ του Apache και του Tomcat και γιατί πρέπει να συνεργάζονται.

Πίνακας περιεχομένων

  1. Λόγοι για τη σύνδεση του Apache και του Tomcat
  2. Χαρακτηριστικά Apache
  3. Χαρακτηριστικά του Tomcat
  4. αντίτιμο
  5. περίληψη

1. Λόγοι για τη σύνδεση του Apache και του Tomcat

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

Ο λόγος που γράφουμε ότι υπάρχει διαφορά στην εξειδίκευση είναι ότι ο ίδιος ο Tomcat έχει επίσης λειτουργίες ως διακομιστής ιστού. Αυτό μπορεί να είναι λίγο ακραίο, αλλά αν υπάρχει ένα σύστημα στο οποίο ο Apache και ο Tomcat είναι συνδεδεμένοι, δεν είναι αδύνατο να υλοποιήσετε σχεδόν το ίδιο σύστημα χρησιμοποιώντας μόνο τον Apache και μόνο τον Tomcat.

1-1. Ποιες είναι οι διαφορές στην εμπειρογνωμοσύνη;

Κατά την εξέταση των διαφορών στην εξειδίκευση των ρόλων, θεωρούμε ότι αυτό είναι δύσκολο να γίνει κατανοητό επειδή η σύγκριση γίνεται ξαφνικά μεταξύ του Apache και του Tomcat. Είναι ευκολότερο να το καταλάβετε αν σκεφτείτε με όρους Tomcat και διακομιστών ΒΔ. Αυτό μπορεί να ακούγεται ακραίο, αλλά είναι δυνατόν να δημιουργήσετε μια εφαρμογή χρησιμοποιώντας μόνο τον Tomcat χωρίς να εγκαταστήσετε διακομιστή ΒΔ. Για παράδειγμα, θα μπορούσατε να διαχειριστείτε πληροφορίες χρήστη σε xml ή property και να δημιουργήσετε μια εφαρμογή που πιστοποιεί την είσοδο με βάση αυτές τις πληροφορίες. Ωστόσο, στην πραγματικότητα, αν κοιτάξετε τα γενικά συστήματα ιστού, τα περισσότερα συστήματα διαχειρίζονται τις πληροφορίες των χρηστών σε μια ΒΔ και παραπέμπουν τα δεδομένα από το Tomcat στον διακομιστή ΒΔ. Αν σκεφτείτε το γιατί, είναι επειδή μπορείτε να αναπτύξετε εφαρμογές πιο αποτελεσματικά με αυτόν τον τρόπο.

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

1-2. Τι είναι ο Apache;

Αφού ανέφερα ότι οι ρόλοι είναι διαφορετικοί, θα ήθελα τώρα να εξηγήσω ποιοι είναι οι ρόλοι του Apache και του Tomcat.

Για άλλη μια φορά, ο Apache είναι επίσημα γνωστός ως Apache HTTP Server. Ο Apache είναι ένας διακομιστής ιστού, αλλά με λίγα λόγια, ο ρόλος του είναι να αναλύει τα αιτήματα.

Συγκεκριμένα, αυτά είναι.

  • Φίλτρο (επιτρέπει/απαγορεύει αιτήσεις) για συγκεκριμένες διευθύνσεις IP
  • Ανακατεύθυνση για συγκεκριμένες διευθύνσεις URL.
  • Απόρριψη συγκεκριμένων διευθύνσεων URL
  • Κρυπτογράφηση των επικοινωνιών μέσω SSL
  • Κατανομή διεργασιών σε συγκεκριμένους διακομιστές κατόπιν αιτήματος

Το παραπάνω είναι μόνο ένα παράδειγμα και υπάρχουν και άλλες λειτουργίες, αλλά εν συντομία, ο ρόλος του Apache (του διακομιστή ιστού) είναι ο χειρισμός των αιτημάτων που λαμβάνονται από τους χρήστες.

Δουλειά του Tomcat είναι να αποφασίσει τι είδους απάντηση θα δώσει με βάση το συγκεκριμένο αίτημα. Το σημείο που δεν πρέπει να παρεξηγηθεί είναι ότι ο Apache δεν απαγορεύει τη δημιουργία απαντήσεων. Ακριβώς όπως ο Tomcat συνεργάζεται με έναν διακομιστή ΒΔ και διατηρεί απλά δεδομένα (π.χ. λίστες μηνυμάτων) στην πλευρά του Tomcat, ο Apache δεν έχει κανένα πρόβλημα να υλοποιήσει δυναμικές σελίδες εφόσον πρόκειται για απλές απαντήσεις. Το κλειδί είναι τι μπορεί να αντιμετωπιστεί πιο αποτελεσματικά και να διαχειριστεί με τάξη.

1-3. Τι είναι ο Tomcat;

Το επίσημο όνομα του Tomcat είναι 'Apache Tomcat'. Το Tomcat είναι ένα servlet container, αλλά για να εξηγήσουμε το ρόλο του με λίγα λόγια, είναι υπεύθυνο για τη δυναμική επεξεργασία με βάση τα αιτήματα.

Συγκεκριμένα, αυτά είναι.

  • Καταχωρίστε δεδομένα με βάση τις πληροφορίες της αίτησης.
  • Δημιουργία δυναμικών σελίδων και απαντήσεων με βάση τις πληροφορίες της αίτησης.
  • Καθορίστε τον χρήστη με βάση τις πληροφορίες του αιτήματος και δημιουργήστε μια διαφορετική απάντηση για κάθε χρήστη.

Βασικά, είναι δουλειά του Tomcat να επιστρέφει στον χρήστη σελίδες που δεν είναι σταθερές σελίδες.

Αυτό είναι ένα άλλο σημείο που δεν πρέπει να παρεξηγηθεί: δεν σημαίνει ότι οι στατικές σελίδες (π.χ. html) δεν πρέπει να τοποθετούνται στον Tomcat. Εάν η σχεδιαστική φιλοσοφία της ομάδας είναι να διαχειρίζεται όλη την html στην πλευρά του Tomcat, δεν υπάρχει πρόβλημα με την τοποθέτηση στατικών σελίδων στον Tomcat. Και σε αυτή την περίπτωση, το σημείο κλειδί είναι τι μπορεί να διεκπεραιωθεί πιο αποτελεσματικά και να διαχειριστεί με τάξη.

2. Χαρακτηριστικά Apache

Θα ήθελα να σας παρουσιάσω μερικά από τα χαρακτηριστικά του Apache. Ο Apache παρέχει έναν αριθμό ενοτήτων (αρχεία στα οποία πακετάρονται διεργασίες). Φορτώστε τη μονάδα και περιγράψτε τις απαιτούμενες τιμές διαμόρφωσης για τη χρήση των λειτουργιών της. Θα ήθελα να περιγράψω ποιες ενότητες είναι διαθέσιμες.

2-1. Δυνατότητα ταυτόχρονης επεξεργασίας αιτήσεων.

Η ενότητα "mpm_prefork_module" είναι η σχετική ενότητα. Υπάρχουν επίσης τα "mpm_worker_module" και "mpm_event_module", αν και η λειτουργία τους είναι σχεδόν πανομοιότυπη.

Ορίστε τις τιμές ως εξής.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

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

2-2. Επανεγγραφή της διεύθυνσης URL της αίτησης

Η ενότητα 'rewrite_module' είναι η σχετική ενότητα.

Ορίστε τις τιμές ως εξής.

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Εάν αυτό δηλώνεται με αυτόν τον τρόπο, εάν ένα αίτημα έρχεται στο http, θα επιστρέφεται στο χρήστη για να το ζητήσει ξανά στο https.

2-3. Έλεγχος πρόσβασης βάσει διεύθυνσης IP

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

Η ακόλουθη περιγραφή θα αποτρέψει την πρόσβαση από IP εκτός των "1.0.16.0/20", "1.0.64.0/18" και "1.1.64.0/18".

<Directory />
    order deny,allow
    deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
</Directory>

3. Χαρακτηριστικά του Tomcat

Θα ήθελα να εξηγήσω τη λειτουργικότητα του Tomcat.

3-1. Δυνατότητα δυναμικής επιστροφής ιστοσελίδων με χρήση Java.

Η εξειδίκευση του Tomcat έγκειται στην "ικανότητά του να επιστρέφει δυναμικά ιστοσελίδες χρησιμοποιώντας Java". Γενικά, δεν δημιουργείτε μόνοι σας όλη την επεξεργασία της Java, αλλά τη χρησιμοποιείτε σε συνδυασμό με βιβλιοθήκες Java (modules στον Apache) που κατασκευάζονται από διάφορους οργανισμούς.

  • Δυναμική δημιουργία απαντήσεων με βάση τις παραμέτρους του αιτήματος του χρήστη.
  • Εξαγωγή αρχείων καταγραφής σε συγκεκριμένη μορφή.
  • Δημιουργία και επεξεργασία αρχείων Excel
  • Προσδιορίστε αν το αρχείο zip έχει κωδικό πρόσβασης.

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

4. αντίτιμο

Έχουμε εξηγήσει ότι η διαφορά μεταξύ του Apache και του Tomcat είναι η "εξειδίκευση ρόλων", αλλά τόσο ο Apache (Apache HTTP Server) όσο και ο Tomcat (Apache Tomcat) έχουν δημιουργηθεί από το ίδιο Ίδρυμα Λογισμικού Apache. Ο λόγος μπορεί να είναι ότι ο Apache είναι γραμμένος σε C και ο Tomcat σε Java, οι οποίες είναι διαφορετικές γλώσσες, αλλά ο λόγος για τον οποίο δεν συνδυάζονται σε μία μπορεί να είναι επειδή παίζουν διαφορετικούς ρόλους".

Η αρχική σελίδα του Tomcat ήταν αρκετά εκτεταμένη και λειτουργεί επίσης καλά ως διακομιστής ιστού.

http://tomcat.apache.org/

  • SSL/TLS (κρυπτογράφηση επικοινωνιών)
  • SSI (η δυνατότητα ενσωμάτωσης διαφορετικής HTML εντός της HTML)
  • Rewrite (λειτουργία επαναγραφής URL)

Ο Apache είναι ένας διακομιστής ιστού υψηλών επιδόσεων, αλλά υπάρχουν πολλά χαρακτηριστικά που δεν χρησιμοποιούνται, οπότε το Ίδρυμα Λογισμικού Apache μπορεί να το έχει κάνει έτσι ώστε ο Tomcat να μπορεί να λειτουργεί ανεξάρτητα χωρίς τον Apache. Ωστόσο, εξακολουθεί να είναι προτιμότερο να συμπεριλάβετε τον Apache αν χρειάζεστε λεπτομερή έλεγχο των αιτήσεων.

5. περίληψη

Περιγράφονται οι διαφορές μεταξύ του Apache και του Tomcat και γιατί πρέπει να συνεργάζονται.

Σκέφτηκα ότι η απάντηση σε αυτή την ερώτηση ήταν δύσκολο να γίνει κατανοητή επειδή ο Tomcat είναι ένας διακομιστής ιστού με πλήρεις δυνατότητες. Είναι καλό να σκεφτείτε τη συνεργασία μεταξύ του Apache και του Tomcat, λαμβάνοντας υπόψη ότι η λειτουργία του Tomcat ως διακομιστή ιστού δεν είναι η κύρια λειτουργία του (δεν είναι εξειδικευμένος ως διακομιστής ιστού).

Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.