Atšķirība starp Apache un Tomcat un kāpēc tiem ir jāsadarbojas.


Publikācijas datums:2021. gada 1. janvāris.



INFOMARTION > Atšķirība starp Apache un Tomcat un kāpēc tiem ir jāsadarbojas.

Pārskats.

Es vēlētos aprakstīt atšķirības starp Apache un Tomcat un to, kāpēc tie ir jāsasaista, uz ko es nevarēju atrast apmierinošu atbildi, kad es biju jauns, pat pēc tam, kad jautāju saviem vecākiem un pētot internetā. Dažkārt tiek teikts, ka Apache ir tīmekļa serveris (veic statisku apstrādi), bet Tomcat ir servletu konteiners (veic dinamisku apstrādi) (kā man teica kāds vecākais kolēģis, kad biju jauns), bet Tomcat ir arī tīmekļa servera funkcijas, ja to rūpīgi izpētīt. Tad jūs domājat, ka Tomcat ir viss, kas jums nepieciešams. Tas galu galā noved atpakaļ pie jautājuma, kāpēc Apache un Tomcat ir jāsasaista kopā. Tiem, kas to dara, vēlos izskaidrot atšķirības starp Apache un Tomcat un to, kāpēc tiem ir jāsadarbojas.

Satura rādītājs

  1. Apache un Tomcat sasaistes iemesli
  2. Apache funkcijas
  3. Tomcat funkcijas
  4. apsvērumi
  5. kopsavilkums

1. Apache un Tomcat sasaistes iemesli

Pirmais secinājums, kas jāsecina, ir atšķirīgā lomu specializācija. Apache specializējas tīmekļa servera funkcijās, bet Tomcat - dinamiskajā apstrādē, izmantojot Java.

Iemesls, kādēļ tiek rakstīts, ka specializācija atšķiras, ir tas, ka Tomcat pats pilda arī tīmekļa servera funkcijas. Iespējams, tas ir nedaudz ekstrēmi, taču, ja ir sistēma, kurā Apache un Tomcat ir saistīti, nav neiespējami izveidot gandrīz tādu pašu sistēmu, izmantojot tikai Apache un tikai Tomcat.

1-1. Kādas ir kompetences atšķirības?

Apsverot atšķirības lomu specializācijā, mums šķiet, ka to ir grūti saprast, jo pēkšņi tiek salīdzināts Apache un Tomcat. To ir vieglāk saprast, ja domājat par Tomcat un DB serveriem. Tas var izklausīties ekstrēmi, taču ir iespējams izveidot lietojumprogrammu, izmantojot tikai Tomcat un neievietojot DB serveri. Piemēram, varat pārvaldīt lietotāja informāciju xml vai īpašumā un izveidot lietojumprogrammu, kas autentificē pieteikšanos, pamatojoties uz šo informāciju. Tomēr realitātē, ja aplūkojat vispārējās tīmekļa sistēmas, vairums sistēmu pārvalda lietotāja informāciju datubāzē un no Tomcat pārsūta datus uz datubāzes serveri. Ja padomājat, kāpēc, tad tas ir tāpēc, ka šādā veidā varat efektīvāk izstrādāt lietotnes.

Dažkārt cilvēki skaidro "priekšrocības" un "trūkumus" attiecībā uz Apache un Tomcat sadarbību, taču runa nav par priekšrocībām un trūkumiem. Uz jautājumu par Tomcat un DB serveru sasaistes "priekšrocībām" un "trūkumiem" viņi atbildēja, ka to lomas ir atšķirīgas. Tas pats attiecas uz Apache un Tomcat, kuriem ir atšķirīgas lomas.

1-2. Kas ir Apache?

Pēc tam, kad minēju, ka lomas ir atšķirīgas, vēlos paskaidrot, kādas ir Apache un Tomcat lomas.

Vēlreiz jāatgādina, ka Apache oficiāli tiek saukts par Apache HTTP serveri. Apache ir tīmekļa serveris, bet īsumā tā uzdevums ir analizēt pieprasījumus.

Konkrēti tie ir šādi.

  • Filtrēt (atļaut/aizliegt pieprasījumus) konkrētām IP adresēm
  • Pārvirzīšana uz konkrētiem URL adresātiem.
  • Konkrētu URL noraidīšana
  • Saziņas šifrēšana, izmantojot SSL
  • Procesu piešķiršana konkrētiem serveriem pēc pieprasījuma

Iepriekš minētais ir tikai viens piemērs, un ir vēl citas funkcijas, bet īsumā Apache (tīmekļa servera) uzdevums ir apstrādāt no lietotājiem saņemtos pieprasījumus.

Tomcat uzdevums ir izlemt, kāda veida atbildi sniegt, pamatojoties uz konkrēto pieprasījumu. Nevajadzētu pārprast, ka Apache neaizliedz radīt atbildes. Tāpat kā Tomcat sadarbojas ar DB serveri un uztur vienkāršus datus (piemēram, ziņojumu sarakstus) Tomcat pusē, Apache nav problēmu ieviest dinamiskas lapas, ja vien tās ir vienkāršas atbildes. Galvenais ir tas, ko var apstrādāt visefektīvāk un kārtīgi pārvaldīt.

1-3. Kas ir Tomcat?

Tomcat oficiālais nosaukums ir "Apache Tomcat". Tomcat ir servletu konteiners, bet, lai īsumā izskaidrotu tā lomu, tas ir atbildīgs par dinamisku apstrādi, pamatojoties uz pieprasījumiem.

Konkrēti tie ir šādi.

  • Reģistrēt datus, pamatojoties uz pieprasījuma informāciju.
  • Dinamisku lapu un atbilžu izveide, pamatojoties uz pieprasījuma informāciju.
  • Noteikt lietotāju, pamatojoties uz pieprasījuma informāciju, un katram lietotājam izveidot atšķirīgu atbildi.

Būtībā Tomcat uzdevums ir atgriezt lietotājam lapas, kas nav fiksētās lapas.

Šis ir vēl viens punkts, ko nevajadzētu pārprast: tas nenozīmē, ka statiskās lapas (piem., html) nedrīkst izvietot Tomcat. Ja komandas dizaina filozofija ir pārvaldīt visu html Tomcat pusē, nav problēmu izvietot statiskās lapas Tomcat vietnē. Arī šajā gadījumā galvenais ir tas, ko var apstrādāt visefektīvāk un sakoptāk.

2. Apache funkcijas

Vēlos iepazīstināt ar dažām Apache funkcijām. Apache nodrošina vairākus moduļus (datnes, kurās ir apkopoti procesi). Ielādējiet moduli un aprakstiet nepieciešamās konfigurācijas vērtības, lai izmantotu tā funkcijas. Vēlos aprakstīt, kādi moduļi ir pieejami.

2-1. Iespēja apstrādāt pieprasījumus vienlaicīgi.

Attiecīgais modulis ir modulis "mpm_prefork_module". Ir arī "mpm_worker_module" un "mpm_event_module", lai gan to funkcionalitāte ir gandrīz identiska.

Iestatiet šādas vērtības.

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

Šādi aprakstīts, kad tiek palaists serveris, vienlaicīgi var tikt palaisti "5" procesi un paralēli apstrādāti "5" procesi, un, ja tiek saņemts liels skaits pieprasījumu, paralēli var tikt apstrādāti līdz pat "250" procesi.

2-2. Pieprasījuma URL pārrakstīšana

Modulis 'rewrite_module' ir attiecīgais modulis.

Iestatiet šādas vērtības.

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

Ja tas ir norādīts šādā veidā, tad, ja pieprasījums tiek saņemts, izmantojot http, tas tiks atgriezts lietotājam, lai tas vēlreiz pieprasītu, izmantojot https.

2-3. Piekļuves kontrole pēc IP adreses

Šis modulis nedaudz atšķiras no moduļa, taču tas kontrolē piekļuvi pēc IP adreses.

Šāds apraksts novērsīs piekļuvi no citiem IP, kas nav "1.0.16.0/20", "1.0.64.0/18" un "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 funkcijas

Vēlos paskaidrot Tomcat funkcionalitāti.

3-1. Iespēja dinamiski atgriezt tīmekļa lapas, izmantojot Java.

Tomcat kompetence ir tā "spēja dinamiski atgriezt tīmekļa lapas, izmantojot Java". Parasti jūs pats neizveidojat visu Java apstrādi, bet izmantojat to kopā ar Java bibliotēkām (moduļiem Apache), ko ir izveidojušas dažādas organizācijas.

  • Dinamiski ģenerēt atbildes, pamatojoties uz lietotāja pieprasījuma parametriem.
  • Izvadiet žurnāla failus noteiktā formātā.
  • Izveidot un rediģēt Excel failus
  • Noteikt, vai zip datnei ir parole.

Sarežģītus procesus, piemēram, iepriekš aprakstītos, var panākt, vienkārši ievietojot bibliotēku un izsaucot bibliotēku. Tomcat uzdevums ir atvieglot šo sarežģīto procesu īstenošanu.

4. apsvērumi

Mēs esam paskaidrojuši, ka atšķirība starp Apache un Tomcat ir "lomu specializācija", taču gan Apache (Apache HTTP Server), gan Tomcat (Apache Tomcat) ir radījis tas pats Apache Software Foundation. Iemesls varētu būt tas, ka Apache ir rakstīts C valodā, bet Tomcat - Java, kas ir atšķirīgas valodas, bet iemesls, kāpēc tās nav apvienotas vienā, varētu būt tas, ka tām ir atšķirīgas lomas."

Tomcat mājas lapa bija diezgan plaša, un tā labi darbojas arī kā tīmekļa serveris.

http://tomcat.apache.org/

  • SSL/TLS (saziņas šifrēšana)
  • SSI (iespēja ievietot dažādus HTML tekstus HTML formātā).
  • Pārrakstīt (URL pārrakstīšanas funkcija)

Apache ir augstas veiktspējas tīmekļa serveris, taču ir daudz funkciju, kas netiek izmantotas, tāpēc Apache Software Foundation, iespējams, ir panācis, ka Tomcat var darboties neatkarīgi bez Apache. Tomēr, ja nepieciešama detalizēta pieprasījumu kontrole, joprojām ir labāk iekļaut Apache.

5. kopsavilkums

Aprakstītas atšķirības starp Apache un Tomcat un iemesli, kāpēc tām ir jāsadarbojas.

Man šķita, ka atbildi uz šo jautājumu ir grūti saprast, jo Tomcat ir pilnfunkcionāls tīmekļa serveris. Ir lietderīgi padomāt par Apache un Tomcat sadarbību, paturot prātā, ka Tomcat kā tīmekļa servera funkcija nav tā galvenā funkcija (tas nav specializēts kā tīmekļa serveris).

Paldies, ka noskatījāties līdz beigām.