Anda tidak hanya meng - host seluruh situs dengan CDN, hanya konten Anda .
Saya baru sadar bahwa saya menjawab pertanyaan yang sama beberapa waktu lalu: Apa yang dilakukan akamaihd.net?
Gambar oleh WikiMedia
Jadi referensi situs Anda http://akamai/myfile.ext
. Ini akan meminta myfile.ext
dari akamai
. akamai
kemudian dapat mengirim pengalihan HTTP ke server konten yang sebenarnya.
Sekarang, ketika langkah terakhir di-cache, bagus, semua permintaan di masa mendatang akan pergi ke server konten terdekat.
Bagaimana cara kerjanya?
Mari kita asumsikan situs web ini:
<html>
<body>
<img src="http://cdn/oliver.png" />
</body>
</html>
Saya meminta situs web ini dari server web saya sendiri. The .html
file tidak host dengan cdn
. DNS server web saya juga tidak.
Permintaan awal
Jadi browser saya mendapatkan file HTML itu dan sekarang mem-parsingnya. Ia menemukan gambar dan catatan yang dirujuk di mana ia berada http://cdn/oliver.png
. Ia meminta file itu.
Untuk melakukan itu, perlu menemukan alamat IP cdn
. Dalam contoh kita, alamat IP itu 10.10.10.10
.
Dengan alamat IP itu, ia dapat terhubung ke cdn
server dan meminta /oliver.png
.
Lokasi Geo
Sekarang cdn
sadar, " orang itu dari Jerman! ". Jadi, alih-alih mengirimi saya foto saya yang luar biasa yang saya inginkan, itu mengirimkan saya sebuah pengalihan HTTP yang mengatakan:
/oliver.png tidak ada di sini. Itu di10.10.33.33/oliver.png
Jadi browser saya akan meminta 10.10.33.33
(yang diharapkan dekat dengan saya) untuk gambar.
Serius?
Saya tidak mengatakan ini adalah bagaimana SEMUA CDN bekerja, tetapi itu akan menjadi satu pendekatan.
Anda juga bisa menerapkan daemon DNS yang mengembalikan hasil yang berbeda untuk pencarian nama tergantung pada lokasi siapa pun yang mengirim kueri.
Tetapi saya ragu bahwa ini dilakukan dalam praktek. Tapi mungkin saya tidak bisa membayangkan bagaimana mengaturnya dengan benar. Lihat jawaban fluffy untuk cara kerjanya.
Siapa yang menjalankan CDN?
Sebagian besar pemain global memiliki jaringan pengiriman konten sendiri (atau saya kira begitu). Beberapa penyedia hanya menurunkan layanan tertentu ke CDN yang lebih besar (seperti Microsoft dengan unduhan MSDN). Dan ini entah bagaimana mungkin menyentuh subjek kedua Anda.
Pertimbangkan ini, di MSDN Microsoft menawarkan unduhan produk. Unduhan ini kemudian disediakan oleh Akamai. Jika Anda dapat menentukan URL unduhan itu, Anda dapat mengunduh produk tersebut tanpa pernah menghubungi Microsoft.
Apakah itu masalah keamanan? Tidak juga, karena apa yang sedang diunduh masih dilindungi (oleh kunci produk).
Tapi bagaimana dengan data lain?
Jika data Anda relevan dengan keamanan, maka itu bukan materi CDN. Jika Anda tidak ingin sesuatu tersedia seluas mungkin, jangan masukkan ke dalam CDN.
Pendekatan yang cukup umum untuk CDN adalah dengan menggunakan apa yang dikenal sebagai " siaran apa pun ." Cara kerjanya adalah bahwa server Anda yang terdistribusi ditempatkan dengan DNS yang merespons dengan server itu sebagai tujuan; misalnya, Anda mungkin memiliki tiga server di fasilitas hosting yang berbeda, dan DNS masing-masing mengklaim alamat IP mereka sebagai alamat kanonik untuk server Anda (sebut saja, katakanlah,
content.example.com
). DNSes masing-masing dikonfigurasi untuk memiliki alamat IP global yang sama, dan kemudian masing-masing fasilitas server menggunakan pembaruan BGP untuk membuatnya sehingga rute ke server terdekat menang - jadi ketika Anda melakukan pencarian namacontent.example.com
, tercepat / terdekat / DNS yang paling tersedia merespons permintaan dengan server HTTP-nya.Dengan cara ini, tidak ada trik GeoIP yang diperlukan, dan Anda selalu dilayani konten oleh server mana pun yang tercepat bagi Anda - yang mungkin atau mungkin tidak ada hubungannya dengan lokasi fisiknya, karena sifat heterogen dari Internet.
Ini adalah pemahaman saya bahwa Akamai setidaknya sebagian bekerja dengan cara ini.
sumber
Juga tersedia CDNs Jenis Tarik Asal.
Amazon Cloudfront dapat menggunakan teknik ini.
Anda menyiapkan CNAME seperti media.example.com yang menunjuk ke nama server yang ditugaskan dan meninggalkan semua konten Anda di server Anda. Untuk gambar dan konten yang ingin Anda sampaikan melalui CDN, Anda menggunakan media.example.com di URL. Permintaan masuk ke jaringan server mereka dan jika konten tidak tersedia, server mereka menarik konten dari server Anda. Setelah di sistem, konten didistribusikan ke server farm terdekat dengan tempat permintaan ada dan tetap ada untuk TTL yang ditugaskan. Server Anda tidak lagi melihat lalu lintas pada konten yang di-cache hingga TTL berakhir dan Cloudfront harus menyegarkannya.
sumber
Akamai tidak bekerja seperti ini. CDN yang berbeda bekerja secara berbeda, tetapi Akamai secara khusus tidak melakukan siaran apa pun untuk server web mereka.
Ketika seorang pengguna di NY menginginkannya
www.acme.com
, server nama acme.com mengalihkan ("delegasi") ke server nama Akamai. Server nama Akamai melihat di mana mesin yang mengajukan pertanyaan berada (berdasarkan alamat IP-nya) dan mengembalikan alamat IP dari server Akamai terdekat / terbaik untuk dilayaniwww.acme.com
.sumber
Ringkasan hebat tentang cara kerja CDN Akamai dapat ditemukan di sini
Pendeknya:
dan sebagaimana disebutkan dalam posting blog yang tercantum di atas, beberapa perusahaan besar menyelesaikan DNS menggunakan server mereka sendiri, yang dapat meniadakan beberapa manfaat menggunakan CDN.
sumber
CDN bekerja pada DNS Anycast. Anycast dns berfungsi pada Anycast ip. Anycast ip: Satu ip ditetapkan pada beberapa server. Ketika pengguna meminta resolver dns, permintaan itu akan ditangani oleh server terdekat dan memberikan data dari server dengan latensi paling rendah.
sumber