Perbedaan antara Apache dan Tomcat dan mengapa mereka perlu bekerja sama.


Tanggal Publikasi:1 Januari 2021.



INFOMARTION > Perbedaan antara Apache dan Tomcat dan mengapa mereka perlu bekerja sama.

Ikhtisar.

Saya ingin menjelaskan perbedaan antara Apache dan Tomcat dan mengapa mereka perlu dihubungkan, yang saya tidak dapat menemukan jawaban yang memuaskan ketika saya masih baru, bahkan setelah bertanya kepada senior saya dan meneliti di internet. Kadang-kadang dikatakan bahwa Apache adalah web server (mengeksekusi pemrosesan statis) dan Tomcat adalah servlet container (mengeksekusi pemrosesan dinamis) (seperti yang saya diberitahu oleh seorang kolega senior ketika saya masih baru), tetapi Tomcat juga memiliki fungsi web server jika diperiksa dengan cermat. Maka Anda akan berpikir bahwa Tomcat adalah semua yang Anda butuhkan. Hal ini akhirnya mengarah kembali ke pertanyaan mengapa Apache dan Tomcat perlu dihubungkan bersama. Bagi mereka yang melakukannya, saya ingin menjelaskan perbedaan antara Apache dan Tomcat dan mengapa mereka perlu bekerja sama.

Daftar Isi

  1. Alasan untuk menghubungkan Apache dan Tomcat
  2. Fitur Apache
  3. Fitur Tomcat
  4. pertimbangan
  5. ringkasan

1. Alasan untuk menghubungkan Apache dan Tomcat

Kesimpulan pertama yang bisa ditarik adalah perbedaan dalam spesialisasi peran. Apache berspesialisasi dalam fungsi server web, sementara Tomcat berspesialisasi dalam pemrosesan dinamis menggunakan Java.

Alasan penulisan bahwa ada perbedaan spesialisasi adalah karena Tomcat sendiri juga memiliki fungsi sebagai web server. Ini mungkin sedikit ekstrim, tetapi jika ada sistem di mana Apache dan Tomcat dihubungkan, bukan tidak mungkin untuk merealisasikan sistem yang hampir sama dengan hanya menggunakan Apache dan Tomcat saja.

1-1. Apa perbedaan dalam keahlian?

Dalam mempertimbangkan perbedaan dalam spesialisasi peran, kami merasa bahwa hal ini sulit dipahami karena perbandingan tiba-tiba dibuat antara Apache dan Tomcat. Lebih mudah dipahami jika Anda berpikir dalam hal server Tomcat dan DB. Ini mungkin terdengar ekstrim, tetapi dimungkinkan untuk membuat aplikasi hanya menggunakan Tomcat tanpa menyiapkan server DB. Misalnya, Anda bisa mengelola informasi pengguna dalam xml atau properti dan membuat aplikasi yang mengautentikasi login berdasarkan informasi tersebut. Namun, pada kenyataannya, jika Anda melihat sistem web umum, sebagian besar sistem mengelola informasi pengguna dalam DB dan merujuk data dari Tomcat ke server DB. Jika Anda memikirkan alasannya, itu karena Anda dapat mengembangkan aplikasi dengan lebih efisien dengan cara itu.

Terkadang orang menjelaskan "keuntungan" dan "kerugian" mengenai kerja sama antara Apache dan Tomcat, tetapi ini bukan tentang keuntungan dan kerugian. Ketika ditanya tentang "keuntungan" dan "kerugian" dari menghubungkan Tomcat dan server DB, mereka akan menjawab bahwa perannya berbeda untuk memulai. Hal yang sama berlaku untuk Apache dan Tomcat, yang memiliki peran yang berbeda untuk memulai.

1-2. Apa itu Apache?

Setelah menyebutkan bahwa perannya berbeda, sekarang saya ingin menjelaskan apa peran Apache dan Tomcat.

Sekali lagi, Apache secara resmi dikenal sebagai Apache HTTP Server. Apache adalah web server, tetapi secara singkat, perannya adalah menganalisis permintaan.

Secara spesifik, ini adalah.

  • Menyaring (mengizinkan/menolak permintaan) untuk alamat IP tertentu
  • Redirect untuk URL tertentu.
  • Penolakan URL tertentu
  • Enkripsi komunikasi dengan SSL
  • Alokasi proses ke server tertentu berdasarkan permintaan

Di atas hanyalah salah satu contoh, dan masih banyak lagi fungsi-fungsi lainnya, tetapi singkatnya, peran Apache (web server) adalah bagaimana menangani permintaan yang diterima dari pengguna.

Ini adalah tugas Tomcat untuk memutuskan jenis respons apa yang akan dibuat berdasarkan permintaan spesifik. Hal yang tidak boleh disalahpahami adalah bahwa Apache tidak melarang pembuatan tanggapan. Sama seperti Tomcat yang bekerja dengan server DB dan memelihara data sederhana (misalnya daftar pesan) di sisi Tomcat, Apache tidak memiliki masalah dalam mengimplementasikan halaman dinamis selama itu adalah tanggapan sederhana. Kuncinya adalah apa yang bisa ditangani paling efisien dan dikelola dengan rapi.

1-3. Apa itu Tomcat?

Nama resmi untuk Tomcat adalah 'Apache Tomcat'. Tomcat adalah servlet container, tetapi untuk menjelaskan perannya secara singkat, Tomcat bertanggung jawab untuk pemrosesan dinamis berdasarkan permintaan.

Secara spesifik, ini adalah.

  • Mendaftarkan data berdasarkan informasi permintaan.
  • Membuat halaman dan respons dinamis berdasarkan informasi permintaan.
  • Tentukan pengguna berdasarkan informasi permintaan dan buat respons yang berbeda untuk setiap pengguna.

Pada dasarnya, adalah tugas Tomcat untuk mengembalikan halaman yang bukan halaman tetap kepada pengguna.

Ini adalah poin lain yang tidak boleh disalahpahami: ini tidak berarti bahwa halaman statis (misalnya html) tidak boleh ditempatkan di Tomcat. Jika filosofi desain tim adalah untuk mengelola semua html di sisi Tomcat, tidak ada masalah dengan menempatkan halaman statis pada Tomcat. Dalam hal ini juga, poin kuncinya adalah apa yang bisa ditangani secara paling efisien dan dikelola dengan rapi.

2. Fitur Apache

Saya ingin memperkenalkan beberapa fitur Apache. Apache menyediakan sejumlah modul (file di mana proses dikemas). Muat modul dan jelaskan nilai konfigurasi yang diperlukan untuk menggunakan fungsinya. Saya ingin menjelaskan modul apa saja yang tersedia.

2-1. Kemampuan untuk memproses permintaan secara bersamaan.

Modul "mpm_prefork_module" adalah modul yang relevan. Ada juga "mpm_worker_module" dan "mpm_event_module", meskipun fungsionalitasnya hampir sama.

Tetapkan nilai sebagai berikut.

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

Apabila dijelaskan dengan cara ini, ketika server dimulai, proses "5" dapat dimulai dan "5" dapat diproses secara paralel pada waktu yang sama, dan hingga "250" dapat diproses secara paralel ketika sejumlah besar permintaan masuk.

2-2. Menulis ulang URL permintaan

Modul 'rewrite_module' adalah modul yang relevan.

Tetapkan nilai sebagai berikut.

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

Jika ini dinyatakan dengan cara ini, jika permintaan masuk di http, maka akan dikembalikan ke pengguna untuk meminta lagi di https.

2-3. Kontrol akses berdasarkan alamat IP

Yang satu ini sedikit berbeda dari modul, tetapi mengontrol akses berdasarkan alamat IP.

Deskripsi berikut ini akan mencegah akses dari IP selain "1.0.16.0/20", "1.0.64.0/18" dan "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. Fitur Tomcat

Saya ingin menjelaskan fungsionalitas Tomcat.

3-1. Kemampuan untuk mengembalikan halaman web secara dinamis menggunakan Java.

Keahlian Tomcat terletak pada "kemampuannya untuk mengembalikan halaman web secara dinamis menggunakan Java". Umumnya, Anda tidak membuat semua pemrosesan Java sendiri, tetapi menggunakannya bersama dengan pustaka Java (modul di Apache) yang dibuat oleh berbagai organisasi.

  • Secara dinamis menghasilkan respons berdasarkan parameter permintaan pengguna.
  • Keluaran file log dalam format tertentu.
  • Membuat dan mengedit file Excel
  • Tentukan apakah file zip memiliki kata sandi.

Proses yang kompleks seperti yang dijelaskan di atas dapat dicapai hanya dengan menyisipkan pustaka dan memanggil pustaka tersebut. Peran Tomcat adalah memudahkan untuk mengimplementasikan proses-proses yang kompleks ini.

4. pertimbangan

Kami telah menjelaskan bahwa perbedaan antara Apache dan Tomcat adalah "spesialisasi peran", tetapi baik Apache (Apache HTTP Server) dan Tomcat (Apache Tomcat) dibuat oleh Apache Software Foundation yang sama. Alasannya mungkin karena Apache ditulis dalam bahasa C dan Tomcat dalam bahasa Java, yang merupakan bahasa yang berbeda, tetapi alasan mengapa mereka tidak digabungkan menjadi satu mungkin karena mereka memainkan peran yang berbeda."

Beranda Tomcat cukup luas, dan juga berfungsi dengan baik sebagai server web.

http://tomcat.apache.org/

  • SSL/TLS (enkripsi komunikasi)
  • SSI (kemampuan untuk menyematkan HTML yang berbeda di dalam HTML)
  • Rewrite (fungsi penulisan ulang URL)

Apache adalah web server berkinerja tinggi, tetapi ada banyak fitur yang tidak digunakan, sehingga Apache Software Foundation mungkin telah membuatnya sehingga Tomcat dapat berjalan secara independen tanpa Apache. Namun demikian, masih lebih baik menyertakan Apache jika Anda memerlukan kontrol permintaan yang mendetail.

5. ringkasan

Perbedaan antara Apache dan Tomcat dan mengapa mereka perlu bekerja sama dijelaskan.

Saya pikir jawaban atas pertanyaan ini sulit dimengerti karena Tomcat adalah server web berfitur lengkap. Ada baiknya untuk memikirkan kerja sama antara Apache dan Tomcat, mengingat bahwa fungsi Tomcat sebagai web server bukanlah fungsi utamanya (tidak dikhususkan sebagai web server).

Terima kasih telah menonton sampai akhir.