Apa perbedaan antara server proxy dan server proxy terbalik?
Apa perbedaan antara server proxy dan server proxy terbalik?
Jawaban:
Jawaban sebelumnya akurat, tetapi mungkin terlalu singkat. Saya akan mencoba menambahkan beberapa contoh.
Pertama-tama, kata "proxy" menggambarkan seseorang atau sesuatu yang bertindak atas nama orang lain.
Di dunia komputer, kita berbicara tentang satu server yang bertindak atas nama komputer lain.
Untuk tujuan aksesibilitas, saya akan membatasi diskusi saya dengan proxy web - namun, gagasan proxy tidak terbatas pada situs web.
Sebagian besar diskusi tentang proxy web mengacu pada jenis proxy yang dikenal sebagai "proxy maju".
Acara proxy, dalam hal ini, adalah bahwa "proxy yang maju" mengambil data dari situs web lain atas nama yang diminta asli.
Sebagai contoh, saya akan mencantumkan tiga komputer yang terhubung ke internet.
Biasanya, orang akan terhubung langsung dari X --> Z.
Namun, dalam beberapa skenario, lebih baik untuk Y --> Z
atas nama X
, yang rantai sebagai berikut: X --> Y --> Z
.
Berikut adalah daftar sebagian (sebagian besar) penggunaan server proxy ke depan:
1) X tidak dapat mengakses Z secara langsung karena
a) Seseorang dengan otoritas administratif atas X
koneksi internet telah memutuskan untuk memblokir semua akses ke situs Z
.
Contoh:
Virus Storm Worm menyebar dengan menipu orang agar mengunjungi familypostcards2008.com
, sehingga administrator sistem telah memblokir akses ke situs untuk mencegah pengguna dari menginfeksi diri mereka secara tidak sengaja.
Karyawan di perusahaan besar terlalu banyak membuang waktu facebook.com
, sehingga manajemen ingin akses diblokir selama jam kerja.
Sebuah sekolah dasar setempat melarang akses internet ke playboy.com
situs web.
Pemerintah tidak dapat mengontrol penerbitan berita, jadi ia mengontrol akses ke berita, dengan memblokir situs-situs seperti wikipedia.org
. Lihat TOR atau FreeNet .
b) Administrator Z
telah diblokir X
.
Contoh:
Administrator Z telah memperhatikan upaya peretasan yang berasal dari X, sehingga administrator telah memutuskan untuk memblokir alamat IP X (dan / atau netrange).
Z adalah situs web forum. X
sedang mengirim spam ke forum. Z memblokir X.
Untuk contoh ini, saya akan mencantumkan tiga komputer yang terhubung ke internet.
Biasanya, orang akan terhubung langsung dari X --> Z.
Namun, dalam beberapa skenario, lebih baik bagi administrator Z
untuk membatasi atau melarang akses langsung dan memaksa pengunjung untuk melewati Y terlebih dahulu. Jadi, seperti sebelumnya, kami memiliki data yang diambil oleh Y --> Z
atas nama X
, yang rantai sebagai berikut: X --> Y --> Z
.
Apa yang berbeda kali ini dibandingkan dengan "forward proxy," adalah bahwa kali ini pengguna X
tidak tahu dia mengakses Z
, karena pengguna X
hanya melihat dia berkomunikasi dengannya Y
. Server Z
tidak terlihat oleh klien dan hanya proxy terbalik Y
yang terlihat secara eksternal. Proxy terbalik tidak memerlukan konfigurasi (proxy) di sisi klien.
Klien X
berpikir dia hanya berkomunikasi dengan Y
( X --> Y
), tetapi kenyataannya adalah Y
meneruskan semua komunikasi ( X --> Y --> Z
lagi).
Dalam skenario di atas, Z
memiliki kemampuan untuk memilih Y
.
(X --> Y) --> Z
, sebaliknya: X --> (Y --> Z)
.
Sepasang definisi sederhana adalah:
Forward Proxy: Bertindak atas nama pemohon (atau konsumen layanan)
Reverse Proxy: Bertindak atas nama produsen layanan / konten.
Saya menemukan diagram di bawah ini sangat membantu. Itu hanya menunjukkan arsitektur setup proxy maju vs mundur dari klien ke server melalui Internet. Gambar ini akan membantu Anda untuk memahami jawaban qyb2zm302 dan jawaban lainnya dengan lebih baik.
Anda juga dapat menonton video ini dari F5 's DevCentral oleh Peter Silva.
Sumber Gambar: Quora . Namun, sesuai Martijn Pieters , gambar ini bisa dari Pulse Secure Community atau situs Julien Pauli (dalam bahasa Prancis) di developpez.com.
Itu mengingatkan saya pada pepatah klasik:
Gambar bernilai 1000 kata.
Forward Proxy vs. Reverse Proxy (2012) menjelaskan perbedaan antara proxy maju dan mundur dengan sangat jelas.
Jawaban qyb2zm302 dengan baik merinci aplikasi proksi, tetapi ia tergelincir pada konsep dasar antara proksi maju dan mundur. Untuk proksi terbalik, X → Y → Z, X tahu tentang Y dan bukan Z, bukan sebaliknya.
Proxy hanyalah perantara untuk komunikasi (permintaan + tanggapan). Klien <-> Proxy <-> Server
Proksi bertindak atas nama klien. Klien tahu tentang ketiga mesin yang terlibat dalam rantai. Server tidak.
Proksi bertindak atas nama server. Klien hanya tahu tentang proxy. Server tahu seluruh rantai.
Sepertinya saya bahwa maju dan mundur hanya membingungkan, tergantung pada perspektif nama untuk klien dan server proxy. Saya sarankan meninggalkan yang pertama untuk yang terakhir, untuk komunikasi eksplisit.
Tentu saja, untuk semakin memperumit masalah ini, tidak setiap mesin secara eksklusif adalah klien atau server. Jika ada ambiguitas dalam konteks, yang terbaik adalah menentukan secara eksplisit di mana proksi berada, dan komunikasi yang dilakukan terowongan itu.
Beberapa diagram mungkin membantu:
Teruskan proksi
Membalikkan proxy
Perbedaannya terutama dalam penyebaran. Proxy maju dan mundur web semuanya memiliki fitur dasar yang sama. Mereka menerima permintaan untuk permintaan HTTP dalam berbagai format dan memberikan respons, biasanya dengan mengakses server asal atau kontak.
Server berfitur lengkap biasanya memiliki kontrol akses, caching, dan beberapa fitur pemetaan tautan.
Proxy maju adalah proksi yang diakses dengan mengkonfigurasi mesin klien. Klien memerlukan dukungan protokol untuk fitur proxy (pengalihan, otentikasi proxy, dll.). Proxy transparan untuk pengalaman pengguna, tetapi tidak untuk aplikasi.
Proxy terbalik adalah proksi yang digunakan sebagai server web dan berperilaku seperti server web, dengan pengecualian bahwa alih-alih secara lokal membuat konten dari program dan disk, itu meneruskan permintaan ke server asal. Dari perspektif klien, ini adalah server web, sehingga pengalaman pengguna sepenuhnya transparan.
Bahkan, satu contoh proxy dapat berjalan sebagai proxy maju dan mundur pada saat yang sama untuk populasi klien yang berbeda.
Proxy: Itu membuat permintaan atas nama klien . Jadi, server akan mengembalikan respons ke proxy, dan proxy akan meneruskan respons ke klien. Bahkan, server tidak akan pernah "mengetahui" siapa klien itu (alamat IP klien); itu hanya akan tahu proxy. Namun, klien pasti tahu server, karena pada dasarnya memformat permintaan HTTP yang ditujukan untuk server, tetapi hanya menyerahkannya ke proxy.
Reverse Proxy: Menerima permintaan atas nama server . Ini meneruskan permintaan ke server, menerima respons dan kemudian mengembalikan respons ke klien. Dalam hal ini, klien tidak akan pernah "mengetahui" siapa server sebenarnya (alamat IP server) (dengan beberapa pengecualian); itu hanya akan tahu proxy. Server akan atau tidak akan tahu klien yang sebenarnya, tergantung pada konfigurasi proxy terbalik.
Proksi server proksi (dan secara opsional menyimpan) permintaan jaringan keluar ke berbagai sumber daya publik yang tidak terkait di Internet. Proxy terbalik menangkap (dan secara opsional menyimpan) permintaan masuk dari Internet dan mendistribusikannya ke berbagai sumber daya swasta internal, biasanya untuk tujuan ketersediaan tinggi.
Cloudflare memiliki artikel hebat dengan gambar yang menjelaskan hal ini secara terperinci.
Periksa di sini: Apa Itu Proxy Terbalik? | Server Proxy Dijelaskan
Proxy (Alihkan Proksi):
Ketika komputer di LAN Anda terhubung ke server proxy yang mengakses Internet. Manfaat termasuk hanya server yang terpapar ke Internet. Orang-orang di luar tidak dapat mengakses komputer secara langsung. Meneruskan proksi dapat meningkatkan akses Internet untuk pengguna dengan melakukan caching unduhan. Mereka juga dapat digunakan untuk membatasi akses ke situs tertentu. Selain itu, hanya server proxy yang perlu alamat publik, bukan klien yang terhubung.
Membalikkan Proksi:
Proxy terbalik adalah kebalikan dari proxy yang maju. Sebaliknya itu bertindak sebagai proxy atas nama server yang terhubung. Alih-alih mengakses server jarak jauh secara langsung, pengguna akan melalui proxy terbalik dan diarahkan ke server yang sesuai dari sana. Hanya proksi terbalik yang memerlukan sertifikat SSL, hanya satu alamat IP publik yang diperlukan, dan dapat menangani penyeimbangan beban permintaan yang masuk untuk meningkatkan pengalaman pengguna secara keseluruhan.
Sumber Gambar: Membuat Proxy Teruskan Menggunakan Routing Permintaan Aplikasi
Pemahaman saya dari perspektif Apache adalah bahwa proxy berarti bahwa jika situs x proksi untuk situs y, maka permintaan untuk x kembali y.
Proxy terbalik berarti bahwa respons dari y disesuaikan sehingga semua referensi ke y menjadi x.
Sehingga pengguna tidak dapat mengatakan bahwa proxy terlibat ...
Sesuai pemahaman saya ...
Untuk mulai dengan, seperti semua orang tahu, proksi berarti "otoritas untuk mewakili orang lain". Sekarang ada dua hal, maju dan mundur proxy.
Misalkan Anda ingin mengakses "Google" dan "Google" pada gilirannya akan memiliki sejumlah server untuk menanggapi permintaan khusus itu.
Sekarang dalam kasus ini, saat Anda meminta sesuatu dari Google dan Anda tidak ingin Google melihat alamat IP Anda, maka Anda akan menggunakan proxy yang diteruskan, seperti yang dijelaskan di bawah ini.
A → B → C
Sekarang di sini Anda adalah A, mengirimkan permintaan melalui B. Jadi C akan berpikir bahwa permintaan tersebut berasal dari B, bukan A. Dengan cara ini Anda dapat mencegah alamat IP klien Anda agar tidak terekspos ke dunia luar.
Sekarang dalam hal ini, untuk membuat Anda mengerti, kami akan mengambil kasus yang sama dari proxy yang maju. Di sini Anda telah meminta sesuatu ke Google, yang pada gilirannya akan mengirim satu permintaan ke server aplikasi atau server proxy lain untuk mendapatkan respons. Jadi hal-hal ini akan terjadi sebagaimana dijelaskan di bawah ini.
A → B → C
C → D
C ← D
A ← B ← C
Dari diagram di atas, Anda dapat melihat bahwa permintaan telah dikirim ke C dari B, bukan dari A. Kemudian dari C akan ada satu permintaan kirim ke D. Demikian pula responsnya akan pergi ke C dari D dan kemudian ke B dan A.
Diagram di atas mengatakan hanya konteks yang penting meskipun kedua proksi bertindak dengan cara yang sama, tetapi proksi sisi klien menyembunyikan informasi klien sedangkan proksi sisi server akan menyembunyikan informasi sisi server.
Proxy penerusan memberikan anonimitas klien (yaitu, pikirkan Tor ).
Proxy terbalik memberikan server anonimitas back end (yaitu, pikirkan server di belakang DMZ).
Berikut adalah contoh proksi terbalik (sebagai penyeimbang beban).
Klien menjelajahi situs web.com dan server yang dikunjungi memiliki proksi terbalik yang berjalan di situ. Proxy terbalik kebetulan adalah Pound . Pound menerima permintaan dan mengirimkannya ke salah satu dari tiga server aplikasi yang ada di belakangnya. Dalam contoh ini, Pound adalah penyeimbang beban. Artinya, ini menyeimbangkan beban antara tiga server aplikasi.
Server aplikasi menyajikan konten situs web kembali ke klien.
Jika tidak ada proxy
Untuk melihat dari sisi klien dan sisi server adalah sama:
Klien -> Server
Proksi
Dari sisi klien:
Klien -> proxy -> Server
Dari sisi server:
Klien -> Server
Membalikkan proxy
Dari sisi klien:
Klien -> Server
Dari sisi server:
Klien -> proxy -> Server
Jadi saya pikir jika diatur oleh pengguna klien, itu disebut proxy ; jika diatur oleh manajer server itu adalah proxy terbalik.
Karena tujuan dan alasan pengaturannya berbeda, mereka menangani data dengan cara yang berbeda dan menggunakan perangkat lunak yang berbeda.
User side | Server side
client <-> proxy <--> reverse_proxy <-> real server
Melihat dari perspektif pengguna: saat mengirim permintaan ke proxy atau membalikkan proxy server:
proksi - memerlukan dua argumen :
1) apa yang didapat dan 2) server proxy mana yang akan digunakan perantara
reverse proxy - membutuhkan satu argumen :
1) apa yang harus didapat
Proxy terbalik mengambil konten dari server lain tanpa sepengetahuan pengguna dan mengembalikan hasilnya seolah-olah itu berasal dari server proxy terbalik .
Sebagian besar jawaban sebelumnya baik, tetapi menurut saya tidak ada yang mendekati dengan cukup baik kualitas "terbalik" yang membedakan keduanya. Untuk melakukan itu, beberapa cara memvisualisasikan sifat "terbalik" dari apa yang pada dasarnya hal yang sama (proxy) perlu diberikan, dan perlu diberikan dengan cara yang abstrak.
Sebuah Proxy (implisit "maju proxy") menghubungkan beberapa klien lokal untuk setiap satu server remote:
c--
|--p--s
c--
Sebuah reverse proxy menghubungkan beberapa server lokal untuk salah satu klien remote (pemberitahuan bagaimana membalikkan tata letak):
s--
|--p--c
s--
Ini adalah masalah perspektif benar-benar dan benar memahami konsep membutuhkan abstrak jauh rincian tidak penting (untuk konsep tertentu) meskipun mereka mungkin sangat penting ketika datang ke pragmatik operasi proxy. Rincian tersebut termasuk fakta bahwa dalam kedua skenario kenyataannya adalah bahwa banyak klien terhubung ke beberapa server, bahwa klien dan server mungkin tidak benar-benar lokal atau jauh, di mana cloud Internet berada atau visibilitas seperti apa yang ada antara klien dan server.