Saya bertanya-tanya apakah yang berikut ini mungkin dengan penawaran AWS?
https://www.example.com/a/
-> dilayani oleh Apache pada EC2 Instance A
https://www.example.com/b/
-> dilayani oleh Apache pada EC2 Instance B
Untuk memperjelas, saya tidak ingin file di bawah satu jalur direktori berada pada contoh server yang sama dengan file di bawah jalur direktori lainnya.
Saya mengerti ini mungkin dengan proxy dari beberapa jenis, tetapi apakah ada solusi yang lebih mudah dengan salah satu penawaran AWS.
The EC2 Load Balancer tampaknya tidak memungkinkan switching yang berdasarkan jalur direktori. Rute 53 berfungsi di tingkat DNS, yang tidak memiliki informasi jalur untuk mengembalikan IP berdasarkan itu.
amazon-web-services
apache2
Joseph Shih
sumber
sumber
Host:
tajuk dan menyaring lalu lintas palsu. Tampaknya tidak mungkin mereka akan menambahkan fitur apa pun yang Anda minta jika melihat header terlalu banyak untuk mereka. Untungnya mereka memiliki pilihan lain.Jawaban:
Gunakan Penyeimbang Beban Aplikasi AWS , yang melakukan Routing Berbasis Path . Tautan kedua itu adalah tutorial cara melakukannya.
Singkatnya, Anda mengatur ALB Anda seperti biasa, lalu ikuti langkah-langkah ini (disalin dari tutorial AWS):
sumber
Selain jawaban Tim yang luar biasa, Anda juga dapat mencapainya dengan CloudFront .
Pertama, buat distribusi Anda , tambahkan asal untuk EC2 Instance A dan EC2 Instance B (yang juga bisa menjadi penyeimbang beban, host non-AWS, atau bahkan bucket S3).
Kemudian, atur aturan perilaku cache untuk memetakan / a / * dan / b / * ke asal yang sesuai.
Baik atau tidaknya menggunakan CloudFront untuk tujuan ini akan tergantung pada aplikasi Anda dan kebutuhan untuk CDN.
sumber
/a*
dan/b*
ditangani oleh berbagai layanan, akun berbeda, wilayah berbeda, atau bahkan satu jalur yang ditangani oleh sesuatu yang berjalan di dalam AWS dan jalur lainnya di tempat lain. CloudFront memiliki banyak kasus penggunaan yang secara konseptual tidak memerlukan CDN sama sekali.