La differenza tra Apache e Tomcat e perché devono lavorare insieme.


Data di pubblicazione:1° gennaio 2021.



INFOMARTION > La differenza tra Apache e Tomcat e perché devono lavorare insieme.

Panoramica.

Vorrei descrivere le differenze tra Apache e Tomcat e il motivo per cui devono essere collegati, a cui non sono riuscito a trovare una risposta soddisfacente quando ero nuovo, anche dopo aver chiesto ai miei senior e aver fatto ricerche su Internet. A volte si dice che Apache è un server web (esegue elaborazioni statiche) e Tomcat è un contenitore di servlet (esegue elaborazioni dinamiche) (come mi è stato detto da un collega senior quando ero nuovo), ma Tomcat ha anche funzioni di server web se esaminato attentamente. Allora si potrebbe pensare che Tomcat sia tutto ciò di cui si ha bisogno. Questo ci riporta alla domanda sul perché Apache e Tomcat debbano essere collegati tra loro. Per coloro che lo fanno, vorrei spiegare le differenze tra Apache e Tomcat e perché devono lavorare insieme.

Indice dei contenuti

  1. Motivi per collegare Apache e Tomcat
  2. Caratteristiche di Apache
  3. Caratteristiche di Tomcat
  4. considerazione
  5. sintesi

1. Motivi per collegare Apache e Tomcat

La prima conclusione da trarre è la differenza di specializzazione dei ruoli. Apache è specializzato nelle funzioni di server web, mentre Tomcat è specializzato nell'elaborazione dinamica tramite Java.

Il motivo per cui si scrive che c'è una differenza di specializzazione è che Tomcat stesso ha anche funzioni di server web. Forse è un po' esagerato, ma se esiste un sistema in cui Apache e Tomcat sono collegati, non è impossibile realizzare quasi lo stesso sistema usando solo Apache e solo Tomcat.

1-1. Quali sono le differenze di competenza?

Nel considerare le differenze nella specializzazione dei ruoli, riteniamo che questo sia difficile da capire perché il confronto viene fatto improvvisamente tra Apache e Tomcat. È più facile da capire se si pensa a Tomcat e ai server DB. Può sembrare estremo, ma è possibile creare un'applicazione usando solo Tomcat senza impostare un server DB. Ad esempio, si possono gestire le informazioni sull'utente in xml o proprietà e creare un'applicazione che autentichi il login in base a tali informazioni. Tuttavia, in realtà, se si guarda ai sistemi web in generale, la maggior parte dei sistemi gestisce le informazioni sugli utenti in un DB e rimanda i dati da Tomcat al server DB. Se si pensa al perché, è perché in questo modo è possibile sviluppare le app in modo più efficiente.

A volte si parla di "vantaggi" e "svantaggi" della collaborazione tra Apache e Tomcat, ma non si tratta di vantaggi e svantaggi. Alla domanda sui "vantaggi" e gli "svantaggi" del collegamento tra Tomcat e i server DB, rispondono che i ruoli sono diversi. Lo stesso vale per Apache e Tomcat, che all'inizio hanno ruoli diversi.

1-2. Che cos'è Apache?

Dopo aver detto che i ruoli sono diversi, vorrei ora spiegare quali sono i ruoli di Apache e Tomcat.

Ancora una volta, Apache è ufficialmente conosciuto come Apache HTTP Server. Apache è un server web, ma in poche parole il suo ruolo è quello di analizzare le richieste.

In particolare, si tratta di.

  • Filtrare (consentire/negare le richieste) per indirizzi IP specifici
  • Reindirizzamento per URL specifici.
  • Rifiuto di URL specifici
  • Crittografia delle comunicazioni tramite SSL
  • Assegnazione di processi a server specifici su richiesta

Questo è solo un esempio e ci sono altre funzioni, ma in breve, il ruolo di Apache (il server web) è quello di gestire le richieste ricevute dagli utenti.

È compito di Tomcat decidere che tipo di risposta dare in base alla richiesta specifica. Il punto che non deve essere frainteso è che Apache non proibisce la creazione di risposte. Così come Tomcat lavora con un server DB e mantiene dati semplici (ad esempio elenchi di messaggi) sul lato Tomcat, Apache non ha problemi a implementare pagine dinamiche, purché si tratti di risposte semplici. La chiave è ciò che può essere gestito in modo più efficiente e ordinato.

1-3. Che cos'è Tomcat?

Il nome ufficiale di Tomcat è "Apache Tomcat". Tomcat è un contenitore di servlet, ma per spiegare il suo ruolo in breve, è responsabile dell'elaborazione dinamica basata sulle richieste.

In particolare, si tratta di.

  • Registrare i dati in base alle informazioni richieste.
  • Creare pagine e risposte dinamiche in base alle informazioni richieste.
  • Determinare l'utente in base alle informazioni della richiesta e creare una risposta diversa per ogni utente.

In pratica, il compito di Tomcat è quello di restituire all'utente le pagine che non sono fisse.

Questo è un altro punto che non deve essere frainteso: non significa che le pagine statiche (ad esempio html) non debbano essere inserite in Tomcat. Se la filosofia di progettazione del team è quella di gestire tutto l'html sul lato Tomcat, non c'è alcun problema nel collocare le pagine statiche su Tomcat. Anche in questo caso, il punto chiave è ciò che può essere gestito in modo più efficiente e ordinato.

2. Caratteristiche di Apache

Vorrei presentare alcune delle caratteristiche di Apache. Apache fornisce una serie di moduli (file in cui vengono impacchettati i processi). Caricare il modulo e descrivere i valori di configurazione necessari per utilizzare le sue funzioni. Vorrei descrivere i moduli disponibili.

2-1. Capacità di elaborare le richieste in modo simultaneo.

Il modulo "mpm_prefork_module" è il modulo pertinente. Esistono anche "mpm_worker_module" e "mpm_event_module", anche se la funzionalità è quasi identica.

Impostare i valori come segue.

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

Descritto in questo modo, all'avvio del server possono essere avviati "5" processi e "5" processi possono essere elaborati in parallelo allo stesso tempo, e fino a "250" possono essere elaborati in parallelo quando arriva un gran numero di richieste.

2-2. Riscrittura dell'URL di richiesta

Il modulo 'rewrite_module' è il modulo pertinente.

Impostare i valori come segue.

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

Se si afferma questo concetto, se una richiesta arriva in http, verrà restituita all'utente perché la richieda nuovamente in https.

2-3. Controllo dell'accesso per indirizzo IP

Questo è leggermente diverso dal modulo, ma controlla l'accesso in base all'indirizzo IP.

La seguente descrizione impedisce l'accesso da IP diversi da "1.0.16.0/20", "1.0.64.0/18" e "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. Caratteristiche di Tomcat

Vorrei spiegare la funzionalità di Tomcat.

3-1. Capacità di restituire pagine web in modo dinamico utilizzando Java.

La competenza di Tomcat sta nella sua "capacità di restituire pagine web in modo dinamico utilizzando Java". In genere, non si crea da soli tutta l'elaborazione Java, ma la si utilizza insieme alle librerie Java (moduli in Apache) realizzate da varie organizzazioni.

  • Generare dinamicamente le risposte in base ai parametri di richiesta dell'utente.
  • Emette i file di log in un formato specifico.
  • Creare e modificare file Excel
  • Determinare se il file zip ha una password.

Processi complessi come quelli descritti sopra possono essere realizzati semplicemente inserendo una libreria e chiamando la libreria. Il ruolo di Tomcat è quello di semplificare l'implementazione di questi processi complessi.

4. considerazione

Abbiamo spiegato che la differenza tra Apache e Tomcat è la "specializzazione dei ruoli", ma sia Apache (Apache HTTP Server) che Tomcat (Apache Tomcat) sono stati creati dalla stessa Apache Software Foundation. Il motivo potrebbe essere che Apache è scritto in C e Tomcat in Java, che sono linguaggi diversi, ma il motivo per cui non sono stati combinati in uno solo potrebbe essere perché svolgono ruoli diversi".

La homepage di Tomcat è piuttosto ampia e funziona bene anche come server web.

http://tomcat.apache.org/

  • SSL/TLS (crittografia delle comunicazioni)
  • SSI (la possibilità di incorporare diversi HTML all'interno dell'HTML)
  • Rewrite (funzione di riscrittura degli URL)

Apache è un server web ad alte prestazioni, ma ci sono molte funzioni che non vengono utilizzate, quindi la Apache Software Foundation potrebbe aver fatto in modo che Tomcat possa funzionare in modo indipendente senza Apache. Tuttavia, è sempre meglio includere Apache se si ha bisogno di un controllo dettagliato delle richieste.

5. sintesi

Vengono descritte le differenze tra Apache e Tomcat e il motivo per cui devono lavorare insieme.

Ho pensato che la risposta a questa domanda fosse difficile da capire perché Tomcat è un server web completo. È bene riflettere sulla cooperazione tra Apache e Tomcat, tenendo presente che la funzione di Tomcat come server web non è la sua funzione principale (non è specializzato come server web).

Grazie per aver guardato fino alla fine.




■INFORMATION

Fare clic qui per accedere alla pagina superiore di INFORMAZIONI.


■PROFILE

Cliccare qui per un profilo.


■Dettagli di contatto.

Per richieste di informazioni sull'articolo, contattateci qui.