Situs web akan dikenali melalui Host:
tajuk yang dikirim dari browser. Tetapi karena router Anda tidak mampu melakukan HTTP demangling yang digunakan oleh hosting virtual, Anda harus memilih satu server sebagai "titik akhir" (dan beri tahu router Anda bahwa alamatnya adalah Virtual Server / DMZ).
Kemudian, Anda mengkonfigurasi salah satu mesin sebagai server web untuk domainnya dan proksi untuk yang lain (mis. Menggunakan Apache reverse proxy ), atau (mungkin lebih baik) Anda menginstal proxy pada satu mesin itu, dan menggunakannya untuk mengalikan permintaan ke server lain . Beberapa domain bahkan mungkin di-host di mesin yang sama. nginx
cocok untuk jenis pekerjaan ini, tetapi Anda juga dapat menggunakan perangkat lunak lain (misalnya pound
).
Saya pikir solusi kedua lebih baik karena Anda tidak perlu mengutak-atik konfigurasi server web sama sekali: satu proxy melakukan proxy dan beberapa server web melakukan penyajian web. Jika Anda perlu menambahkan server atau memindahkan host virtual, arsitektur ini lebih mudah dipelihara.
+-- virtual hosts 1..9 -- server B
|
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
|
+-- virtual hosts 24..99- server D
Latensi yang ditambahkan karena permintaan didekodekan dua kali (sekali oleh proxy, sekali oleh penerima yang dituju) dapat diabaikan, dan lebih dari diimbangi oleh akselerasi yang disediakan oleh proxy itu sendiri.