Az Apache és a Tomcat közötti különbség, és hogy miért kell együtt dolgozniuk.


Megjelenés dátuma:2021. január 1.



INFOMARTION > Az Apache és a Tomcat közötti különbség, és hogy miért kell együtt dolgozniuk.

Áttekintés.

Szeretném leírni az Apache és a Tomcat közötti különbségeket, és azt, hogy miért kell összekapcsolni őket, amire nem találtam kielégítő választ, amikor új voltam, még az idősebbek megkérdezése és az interneten való kutatás után sem. Néha azt mondják, hogy az Apache egy webszerver (statikus feldolgozást végez), a Tomcat pedig egy szervlet konténer (dinamikus feldolgozást végez) (ahogy nekem egy vezető kolléga mondta, amikor új voltam), de a Tomcatnek is vannak webszerver funkciói, ha alaposan megvizsgáljuk. Akkor azt gondolná, hogy csak a Tomcatre van szüksége. Ez végül visszavezet ahhoz a kérdéshez, hogy miért kell az Apache-ot és a Tomcat-et összekapcsolni. Azoknak, akik igen, szeretném elmagyarázni az Apache és a Tomcat közötti különbségeket, és hogy miért kell együtt dolgozniuk.

Tartalomjegyzék

  1. Az Apache és a Tomcat összekapcsolásának okai
  2. Apache jellemzők
  3. Tomcat funkciók
  4. ellenszolgáltatás
  5. összefoglaló

1. Az Apache és a Tomcat összekapcsolásának okai

Az első levonható következtetés a szerepek szakosodása közötti különbség. Az Apache a webszerver funkciókra, míg a Tomcat a Java segítségével történő dinamikus feldolgozásra specializálódott.

Azért írtam, hogy van különbség a specializációban, mert a Tomcat maga is rendelkezik webkiszolgálói funkciókkal. Ez talán egy kicsit szélsőséges, de ha van olyan rendszer, amelyben az Apache és a Tomcat összekapcsolódik, akkor nem lehetetlen szinte ugyanazt a rendszert csak az Apache és csak a Tomcat használatával megvalósítani.

1-1. Milyen különbségek vannak a szakértelemben?

A szerepkörök specializációjának különbségeit vizsgálva úgy érezzük, hogy ez nehezen érthető, mert az összehasonlítás hirtelen az Apache és a Tomcat között történik. Könnyebb megérteni, ha Tomcat és DB szerverekben gondolkodik. Ez talán extrémnek hangzik, de lehetséges, hogy csak a Tomcat segítségével, DB-kiszolgáló beállítása nélkül is létrehozzunk egy alkalmazást. Például kezelheti a felhasználói adatokat xml-ben vagy tulajdonságban, és létrehozhat egy olyan alkalmazást, amely ezen adatok alapján hitelesíti a bejelentkezést. A valóságban azonban, ha megnézzük az általános webes rendszereket, a legtöbb rendszer a felhasználói adatokat egy DB-ben kezeli, és a Tomcatből az adatokat a DB-kiszolgálóra irányítja. Ha belegondolsz, hogy miért, akkor azért, mert így hatékonyabban tudsz alkalmazásokat fejleszteni.

Néha az emberek az Apache és a Tomcat együttműködésével kapcsolatban "előnyöket" és "hátrányokat" magyaráznak, de itt nem az előnyökről és hátrányokról van szó. Amikor a Tomcat és a DB-kiszolgálók összekapcsolásának "előnyeiről" és "hátrányairól" kérdezik, azt válaszolnám, hogy a szerepek eleve különbözőek. Ugyanez vonatkozik az Apache-ra és a Tomcat-re is, amelyek kezdetben különböző szerepkörökkel rendelkeznek.

1-2. Mi az Apache?

Miután említettem, hogy a szerepek különbözőek, most szeretném elmagyarázni, hogy mi az Apache és a Tomcat szerepe.

Ismétlem, az Apache hivatalosan Apache HTTP Server néven ismert. Az Apache egy webszerver, de dióhéjban az a feladata, hogy elemezze a kéréseket.

Konkrétan ezek a következők.

  • Szűrés (kérések engedélyezése/tiltása) bizonyos IP-címek esetében
  • Átirányítás bizonyos URL-címekre.
  • Bizonyos URL-ek elutasítása
  • A kommunikáció SSL titkosítása
  • Folyamatok hozzárendelése bizonyos kiszolgálókhoz kérésre

A fenti csak egy példa, és több funkció is létezik, de röviden az Apache (a webszerver) szerepe az, hogy hogyan kezelje a felhasználóktól érkező kéréseket.

A Tomcat feladata eldönteni, hogy az adott kérés alapján milyen választ adjon. Nem szabad félreérteni, hogy az Apache nem tiltja a válaszok létrehozását. Ahogyan a Tomcat egy DB szerverrel dolgozik, és egyszerű adatokat (pl. üzenetlistákat) tart fenn a Tomcat oldalán, az Apache-nak sem okoz gondot a dinamikus oldalak megvalósítása, amíg azok egyszerű válaszok. A kulcs az, hogy mi az, amit a leghatékonyabban lehet kezelni és rendezetten kezelni.

1-3. Mi az a Tomcat?

A Tomcat hivatalos neve 'Apache Tomcat'. A Tomcat egy szervlet konténer, de hogy dióhéjban elmagyarázzuk a szerepét, a kéréseken alapuló dinamikus feldolgozásért felelős.

Konkrétan ezek a következők.

  • Adatok nyilvántartása a kérés adatai alapján.
  • Dinamikus oldalak és válaszok létrehozása a kérési információk alapján.
  • Határozza meg a felhasználót a kérés adatai alapján, és hozzon létre különböző választ minden egyes felhasználó számára.

Alapvetően a Tomcat feladata, hogy olyan oldalakat küldjön vissza a felhasználónak, amelyek nem rögzített oldalak.

Ez egy másik pont, amit nem szabad félreérteni: ez nem azt jelenti, hogy statikus oldalakat (pl. html) nem szabad a Tomcatben elhelyezni. Ha a csapat tervezési filozófiája az, hogy minden html-t a Tomcat oldalán kezeljen, akkor nem jelent problémát a statikus oldalak Tomcatre helyezése. Ebben az esetben is az a kulcs, hogy mi az, amit a leghatékonyabban lehet kezelni és rendezetten kezelni.

2. Apache jellemzők

Szeretném bemutatni az Apache néhány jellemzőjét. Az Apache számos modult biztosít (fájlok, amelyekbe folyamatokat csomagolnak). Töltse be a modult, és írja le a funkciók használatához szükséges konfigurációs értékeket. Szeretném leírni, hogy milyen modulok állnak rendelkezésre.

2-1. Képesség a kérelmek egyidejű feldolgozására.

Az "mpm_prefork_module" modul a megfelelő modul. Létezik még "mpm_worker_module" és "mpm_event_module", bár a funkcionalitásuk szinte azonos.

Állítsa be az értékeket az alábbiak szerint.

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

Ha így írjuk le, akkor a kiszolgáló indításakor "5" folyamat indítható és "5" párhuzamosan feldolgozható egyszerre, és akár "250" is feldolgozható párhuzamosan, ha nagyszámú kérés érkezik.

2-2. A kérési URL átírása

A 'rewrite_module' modul a megfelelő modul.

Állítsa be az értékeket az alábbiak szerint.

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

Ha ez így van megadva, akkor ha egy kérés http-n érkezik, akkor visszaküldjük a felhasználónak, hogy kérjen újra https-en.

2-3. Hozzáférés-szabályozás IP-cím alapján

Ez kissé eltér a modultól, de a hozzáférést IP-cím alapján szabályozza.

A következő leírás megakadályozza a hozzáférést az "1.0.16.0/20", "1.0.64.0/18" és "1.1.64.0/18" IP-címektől eltérő IP-címekről.

<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 funkciók

Szeretném elmagyarázni a Tomcat működését.

3-1. Weboldalak dinamikus visszaküldésének képessége Java segítségével.

A Tomcat szakértelme abban rejlik, hogy "képes weboldalakat dinamikusan, Java segítségével visszaadni". Általában nem maga hozza létre a Java-feldolgozást, hanem a különböző szervezetek által készített Java-könyvtárakkal (modulok az Apache-ban) együtt használja.

  • Dinamikusan generál válaszokat a felhasználói kérés paraméterei alapján.
  • Naplófájlok kimenete egy adott formátumban.
  • Excel fájlok létrehozása és szerkesztése
  • Határozza meg, hogy a zip fájl rendelkezik-e jelszóval.

A fent leírtakhoz hasonló összetett folyamatok egyszerűen megvalósíthatók egy könyvtár beillesztésével és a könyvtár meghívásával. A Tomcat szerepe az, hogy megkönnyítse ezeknek az összetett folyamatoknak a megvalósítását.

4. ellenszolgáltatás

Elmagyaráztuk, hogy az Apache és a Tomcat közötti különbség a "szerepspecializáció", de mind az Apache-t (Apache HTTP Server), mind a Tomcat-et (Apache Tomcat) ugyanaz az Apache Software Foundation hozta létre. Ennek oka lehet, hogy az Apache C-ben, a Tomcat pedig Java-ban íródott, amelyek különböző nyelvek, de az is lehet, hogy azért nem egyesítik őket, mert különböző szerepet játszanak."

A Tomcat honlapja elég terjedelmes volt, és webkiszolgálóként is jól funkcionál.

http://tomcat.apache.org/

  • SSL/TLS (a kommunikáció titkosítása)
  • SSI (a különböző HTML-ek HTML-be ágyazásának képessége)
  • Rewrite (URL átírási funkció)

Az Apache egy nagy teljesítményű webkiszolgáló, de sok olyan funkciója van, amelyet nem használnak, ezért az Apache Software Foundation talán úgy alakította ki, hogy a Tomcat önállóan, Apache nélkül is futtatható legyen. Ha azonban részletes kérésvezérlésre van szüksége, még mindig jobb, ha az Apache-t is beépíti.

5. összefoglaló

Ismertetjük az Apache és a Tomcat közötti különbségeket, valamint azt, hogy miért kell együttműködniük.

Úgy gondoltam, hogy a kérdésre adott válasz nehezen érthető, mivel a Tomcat egy teljes körű webkiszolgáló. Jó átgondolni az Apache és a Tomcat együttműködését, szem előtt tartva, hogy a Tomcat webszerver funkciója nem a fő funkciója (nem webszerverre specializálódott).

Köszönjük, hogy a végéig figyeltek.