Proxy terbalik penyimpanan cloud google. Untuk hosting situs statis pribadi menggunakan objek penyimpanan cloud Google pribadi.
Anda ingin melayani situs statis menggunakan ember GCS Anda, tetapi Anda ingin membatasi akses ke mereka.
Layanan mikro proxy terbalik ini akan berperilaku sebagai server HTTP sederhana untuk array ember GCS. Maka Anda dapat menggunakan metode apa pun yang sesuai untuk membatasi akses ke sana. Misalnya meletakkannya di belakang nginx, caddy atau vpn.
Mengakses objek GCS pribadi melalui browser membutuhkan token khusus yang dikodekan ke dalam URL. Ini akan menghancurkan sebagian besar (jika tidak semua) situs statis, karena mereka tidak dapat menghasilkan token ini atau memprediksi URI dari aset apa pun yang diminta atau tautan. Namun membuat objek penyimpanan publik berarti tidak ada cara untuk membatasi akses ke sana.
Proxy terbalik ini akan melayani objek pribadi melalui HTTP di yang diharapkan (relatif), URI dan tidak akan membatasi akses ke objek ini sama sekali. Namun, dengan meletakkan server ini di belakang proxy terbalik lain, seperti Nginx atau meletakkannya di VPN, Anda akan dapat mengontrol akses dengan cara yang paling sesuai dengan kebutuhan Anda.
NB (Jika Anda memiliki GCLOUD SDK yang diinstal
gcloud info
di shell Anda untuk memeriksa Anda masuk, dan memiliki ID proyek yang benar set).
TARGET_BUCKETS
env var mengharapkan daftar koma yang terpisah dari ember, misalnya:
TARGET_BUCKETS='bucket-one,bucket-two'
Server akan melempar kecuali satu atau lebih target_buckets didefinisikan.
Mengatur HISTORY
Env Var ke True akan memulai server dalam mode riwayat, untuk dukungan spa yang lebih baik. Ini akan merespons dengan file buckets root index.html
untuk jalur apa pun yang tidak memiliki ekstensi file.
npm install
TARGET_BUCKETS="bucket-name" npm start
Setelah server aktif dan berjalan, untuk mengakses objek pribadi dalam ember harus membuat permintaan mendapatkan:
<proxy-host>:<proxy-port>/<bucket-name>/<file-path>
Jika jalur file ada di ember, dan server memiliki premisi untuk membacanya, proxy terbalik akan mengirim isinya sebagai respons. Jika karena alasan apa pun file tidak dapat diambil dari ember maka server akan mengembalikan 404.
Jika ember yang diminta tidak ada dalam daftar target_buckets maka ia akan mengembalikan 403, terlepas dari ember asli atau tidak.
Hanya metode permintaan GET yang didukung saat ini.
Memiliki mode bucket tunggal berarti tidak perlu mengawali semua permintaan dengan jalur bucket-name, jadi meminta <proxy-host>:<proxy-port>/<file-path>
akan meminta jalur file dari ember target tunggal.
Proyek ini menggunakan mikro, yang berarti kita bisa menggunakan alat mikro-dev yang sangat baik, dalam pengembangan.
TARGET_BUCKETS="bucket-name" npm run dev
ADC menggunakan akun layanan default yang menghitung mesin, mesin Kubernetes, mesin aplikasi, dan fungsi cloud disediakan, untuk aplikasi yang berjalan pada layanan tersebut.
Dari pengaturan otentikasi untuk server ke aplikasi produksi server
Karena di atas, saya sarankan Anda menggunakan mesin komputasi, mesin Kubernetes atau mesin aplikasi di mana otentikasi akan ditangani untuk Anda.
Saya telah memasok DockerFile untuk memulai tanpa perlu menginstal Node. Ini tidak akan berfungsi secara lokal karena tidak mengatur otentikasi apa pun dengan Google Cloud SDK.
Namun ketika digunakan ke instance Compute Engine VM, otentikasi ditangani untuk Anda. Untuk melihat cara menggunakan gambar Docker pada instance VM, lihat panduan ini. Jangan lupa untuk mengatur variabel lingkungan TARGET_BUCKETS
, yang dapat dilakukan dengan mengikuti panduan ini.