Diferența dintre Apache și Tomcat și de ce trebuie să lucreze împreună.


Data publicării:1 ianuarie 2021.



INFOMARTION > Diferența dintre Apache și Tomcat și de ce trebuie să lucreze împreună.

Prezentare generală.

Aș dori să descriu diferențele dintre Apache și Tomcat și de ce trebuie să fie legate între ele, la care nu am putut găsi un răspuns satisfăcător când eram nou, chiar și după ce mi-am întrebat seniorii și am făcut cercetări pe internet. Uneori se spune că Apache este un server web (execută procesare statică), iar Tomcat este un container de servlet (execută procesare dinamică) (așa cum mi-a spus un coleg senior când eram nou), dar Tomcat are, de asemenea, funcții de server web dacă este examinat cu atenție. Atunci ați putea crede că Tomcat este tot ce aveți nevoie. Acest lucru duce în cele din urmă la întrebarea de ce Apache și Tomcat trebuie să fie legate împreună. Pentru cei care o fac, aș dori să explic diferențele dintre Apache și Tomcat și de ce trebuie să lucreze împreună.

Cuprins

  1. Motive pentru legarea Apache și Tomcat
  2. Caracteristici Apache
  3. Caracteristicile Tomcat
  4. considerație
  5. rezumat

1. Motive pentru legarea Apache și Tomcat

Prima concluzie care trebuie trasă este diferența în ceea ce privește specializarea rolurilor. Apache este specializat în funcțiile de server web, în timp ce Tomcat este specializat în procesarea dinamică folosind Java.

Motivul pentru care am scris că există o diferență de specializare este că Tomcat în sine are și funcții de server web. Acest lucru poate fi un pic cam extrem, dar dacă există un sistem în care Apache și Tomcat sunt legate, nu este imposibil să se realizeze aproape același sistem folosind doar Apache și doar Tomcat.

1-1. Care sunt diferențele de expertiză?

În ceea ce privește diferențele în ceea ce privește specializarea rolurilor, considerăm că acest lucru este dificil de înțeles, deoarece comparația se face brusc între Apache și Tomcat. Este mai ușor de înțeles dacă vă gândiți în termeni de Tomcat și servere DB. Acest lucru poate părea extrem, dar este posibil să creați o aplicație folosind doar Tomcat fără a configura un server de baze de date. De exemplu, puteți gestiona informațiile despre utilizator în xml sau proprietate și puteți crea o aplicație care autentifică autentificarea pe baza acestor informații. Cu toate acestea, în realitate, dacă vă uitați la sistemele web generale, majoritatea sistemelor gestionează informațiile despre utilizatori într-o bază de date și trimit datele de la Tomcat la serverul de baze de date. Dacă vă gândiți de ce, este pentru că în acest mod puteți dezvolta aplicații mai eficient.

Uneori, oamenii explică "avantaje" și "dezavantaje" în ceea ce privește cooperarea dintre Apache și Tomcat, dar aici nu este vorba despre avantaje și dezavantaje. Când sunt întrebat despre "avantajele" și "dezavantajele" asocierii serverelor Tomcat și DB, aș răspunde că, pentru început, rolurile sunt diferite. Același lucru este valabil și pentru Apache și Tomcat, care au roluri diferite pentru început.

1-2. Ce este Apache?

După ce am menționat că rolurile sunt diferite, aș dori acum să explic care sunt rolurile lui Apache și Tomcat.

Încă o dată, Apache este cunoscut oficial sub numele de Apache HTTP Server. Apache este un server web, dar, pe scurt, rolul său este de a analiza cererile.

Mai exact, acestea sunt.

  • Filtrarea (permiterea/neacceptarea cererilor) pentru anumite adrese IP
  • Redirecționare pentru anumite URL-uri.
  • Respingerea unor URL-uri specifice
  • Criptarea comunicațiilor prin SSL
  • Alocarea de procese pe servere specifice la cerere

Cel de mai sus este doar un exemplu și există mai multe funcții, dar, pe scurt, rolul lui Apache (serverul web) este de a gestiona cererile primite de la utilizatori.

Tomcat are sarcina de a decide ce tip de răspuns să dea în funcție de cererea specifică. Ceea ce nu trebuie să fie înțeles greșit este că Apache nu interzice crearea de răspunsuri. La fel cum Tomcat lucrează cu un server de baze de date și menține date simple (de exemplu, liste de mesaje) pe partea Tomcat, Apache nu are nicio problemă în a implementa pagini dinamice, atâta timp cât acestea sunt răspunsuri simple. Cheia este ceea ce poate fi manipulat cel mai eficient și gestionat în mod ordonat.

1-3. Ce este Tomcat?

Numele oficial al lui Tomcat este "Apache Tomcat". Tomcat este un container de servlet, dar pentru a explica rolul său pe scurt, este responsabil pentru procesarea dinamică bazată pe cereri.

Mai exact, acestea sunt.

  • Înregistrarea datelor pe baza informațiilor din cerere.
  • Creați pagini și răspunsuri dinamice pe baza informațiilor din cerere.
  • Determinați utilizatorul pe baza informațiilor din cerere și creați un răspuns diferit pentru fiecare utilizator.

Practic, sarcina lui Tomcat este de a returna utilizatorului pagini care nu sunt pagini fixe.

Acesta este un alt aspect care nu trebuie înțeles greșit: nu înseamnă că paginile statice (de exemplu, html) nu ar trebui să fie plasate în Tomcat. Dacă filozofia de proiectare a echipei este de a gestiona tot html-ul pe partea Tomcat, nu există nicio problemă în a plasa pagini statice pe Tomcat. Și în acest caz, punctul cheie este ceea ce poate fi tratat cel mai eficient și gestionat în mod ordonat.

2. Caracteristici Apache

Aș dori să vă prezint câteva dintre caracteristicile Apache. Apache oferă un număr de module (fișiere în care sunt împachetate procesele). Încărcați modulul și descrieți valorile de configurare necesare pentru a utiliza funcțiile acestuia. Aș dori să descriu ce module sunt disponibile.

2-1. Capacitatea de a procesa cereri concomitent.

Modulul "mpm_prefork_module" este modulul relevant. Există, de asemenea, "mpm_worker_module" și "mpm_event_module", deși funcționalitatea este aproape identică.

Setați valorile după cum urmează.

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

În acest mod, atunci când serverul este pornit, "5" procese pot fi pornite și "5" pot fi procesate în paralel în același timp, iar până la "250" pot fi procesate în paralel atunci când vine un număr mare de cereri.

2-2. Rescrierea cererii URL

Modulul "rewrite_module" este modulul relevant.

Setați valorile după cum urmează.

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

Dacă acest lucru este declarat în acest fel, în cazul în care o solicitare vine în http, aceasta va fi returnată utilizatorului pentru a o solicita din nou în https.

2-3. Controlul accesului în funcție de adresa IP

Acesta este ușor diferit de modul, dar controlează accesul în funcție de adresa IP.

Următoarea descriere va împiedica accesul de la alte IP-uri decât "1.0.16.0/20", "1.0.64.0/18" și "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. Caracteristicile Tomcat

Aș dori să explic funcționalitatea lui Tomcat.

3-1. Capacitatea de a returna pagini web în mod dinamic folosind Java.

Expertiza lui Tomcat constă în "capacitatea sa de a returna pagini web în mod dinamic folosind Java". În general, nu creați singur toată procesarea Java, ci o utilizați împreună cu bibliotecile Java (module în Apache) care sunt create de diverse organizații.

  • Generarea dinamică a răspunsurilor pe baza parametrilor de solicitare a utilizatorului.
  • Emite fișiere jurnal într-un format specific.
  • Crearea și editarea fișierelor Excel
  • Determinați dacă fișierul zip are o parolă.

Procesele complexe, cum ar fi cele descrise mai sus, pot fi realizate prin simpla inserare a unei biblioteci și apelarea acesteia. Rolul lui Tomcat este de a facilita implementarea acestor procese complexe.

4. considerație

Am explicat că diferența dintre Apache și Tomcat constă în "specializarea rolurilor", dar atât Apache (Apache HTTP Server), cât și Tomcat (Apache Tomcat) sunt create de aceeași fundație Apache Software Foundation. Motivul ar putea fi faptul că Apache este scris în C, iar Tomcat în Java, care sunt limbaje diferite, dar motivul pentru care nu sunt combinate într-unul singur ar putea fi acela că au roluri diferite."

Pagina de pornire a lui Tomcat a fost destul de extinsă și funcționează bine și ca server web.

http://tomcat.apache.org/

  • SSL/TLS (criptarea comunicațiilor)
  • SSI (capacitatea de a încorpora HTML diferit în HTML)
  • Rewrite (funcție de rescriere a URL-urilor)

Apache este un server web de înaltă performanță, dar există multe caracteristici care nu sunt utilizate, astfel încât Apache Software Foundation a făcut în așa fel încât Tomcat să poată rula independent fără Apache. Cu toate acestea, este totuși mai bine să includeți Apache dacă aveți nevoie de un control detaliat al cererilor.

5. rezumat

Sunt descrise diferențele dintre Apache și Tomcat și motivele pentru care acestea trebuie să lucreze împreună.

Am crezut că răspunsul la această întrebare este dificil de înțeles, deoarece Tomcat este un server web complet. Este bine să ne gândim la cooperarea dintre Apache și Tomcat, ținând cont de faptul că funcția de server web a lui Tomcat nu este principala sa funcție (nu este specializat ca server web).

Vă mulțumim că ne-ați urmărit până la sfârșit.