Menyiapkan penulisan ulang URL untuk Load Balancer Aplikasi klasik

Contoh ini menunjukkan penulisan ulang jalur yang ditentukan dalam permintaan untuk Load Balancer Aplikasi klasik.

Untuk mengonfigurasi pengelolaan traffic untuk Load Balancer Aplikasi eksternal global dan Load Balancer Aplikasi eksternal regional, lihat halaman berikut:

Sebelum memulai

  • Baca tentang penulisan ulang URL.

  • Baca tentang peta URL secara umum dan pencocok jalur secara khusus.

  • Contoh penulisan ulang URL mengasumsikan bahwa Anda telah membuat Load Balancer Aplikasi eksternal dengan mengikuti langkah-langkah yang diuraikan dalam Menyiapkan load balancer dengan bucket Cloud Storage.

    Contoh tersebut akan memandu Anda membuat dua resource:

    • http://IP_ADDRESS/never-fetch/three-cats.jpg
    • http://IP_ADDRESS/love-to-fetch/two-dogs.jpg

    Dengan /never-fetch/three-cats.jpg disimpan di /cats, yang merupakan layanan default, dan /love-to-fetch/two-dogs.jpg disimpan di /dogs.

    Pada tahap ini, peta URL akan terlihat seperti ini:

    gcloud compute url-maps describe http-lb
    
    creationTimestamp: '2020-10-13T11:18:10.561-07:00'
    defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
    fingerprint: MKfYsObzqgw=
    hostRules:
    - hosts:
      - '*'
      pathMatcher: path-matcher-1
    id: '1420501688756228493'
    kind: compute#urlMap
    name: test-bucket
    pathMatchers:
    - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
      name: path-matcher-1
      pathRules:
      - paths:
        - /love-to-fetch/*
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/http-lb
    

Mengubah peta URL

Dalam contoh ini, Anda menulis ulang URL /love-to-fetch/ sehingga pengguna dapat menjangkau gambar two-dogs.jpg dengan URL sederhana ini:

  • http://IP_ADDRESS/two-dogs.jpg

Untuk melakukannya, ubah peta URL load balancer sebagai berikut:

Konsol

Mengedit load balancer

  1. Buka halaman Load balancing di Konsol Google Cloud.
    Buka halaman Load balancing
  2. Klik http-lb.
  3. Klik Edit .
  4. Biarkan jendela tetap terbuka untuk melanjutkan.

Mengubah aturan host dan jalur

  1. Di kolom kiri layar, klik Host and path rules.
  2. Pilih Aturan host dan jalur lanjutan (pengalihan URL, penulisan ulang URL).
  3. Klik baris yang berisi aturan jalur non-default, dalam hal ini, baris yang memiliki tanda bintang (*) untuk semua host.
  4. Klik ikon pensil untuk baris /love-to-fetch/* Route traffic to a single backend: dogs.
  5. Di bagian Paths, hapus /love-to-fetch/* dan tambahkan /*.
  6. Di bagian Action, pilih Route traffic to a single backend.
  7. Klik Tindakan add-on (penulisan ulang URL).
  8. Biarkan Penulisan ulang host kosong.
  9. Di bagian Penulisan ulang awalan jalur, masukkan /love-to-fetch/.
  10. Di bagian Backend, pilih dogs.
  11. Klik Simpan.
  12. Klik Done. Aturan host dan jalur baru akan terlihat seperti berikut:

    Jalur Tindakan Backend
    Semua yang tidak cocok (default) Rutekan traffic ke backend tunggal cats
    /* Rutekan traffic ke backend tunggal dogs

  13. Jika semuanya sudah benar, klik Update untuk mengupdate load balancer HTTP Anda.

gcloud

  1. Buat file YAML /tmp/http-lb.yaml, pastikan untuk mengganti PROJECT_ID dengan project ID Anda.

    Saat pengguna meminta jalur /*, jalur akan ditulis ulang di backend ke lokasi konten yang sebenarnya, yaitu /love-to-fetch/*.

    defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
    hostRules:
    - hosts:
      - '*'
      pathMatcher: path-matcher-1
    name: http-lb
    pathMatchers:
    - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
      name: path-matcher-1
      pathRules:
      - paths:
        - /*
        routeAction:
          urlRewrite:
            pathPrefixRewrite: /love-to-fetch/
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    tests:
    - description: Test routing to backend bucket, dogs
      host: example.com
      path: /love-to-fetch/test
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    
  2. Validasi peta URL.

    gcloud compute url-maps validate --source /tmp/http-lb.yaml
    

    Jika pengujian lulus dan perintah menampilkan pesan berhasil, simpan perubahan ke peta URL.

  3. Perbarui peta URL.

    gcloud compute url-maps import http-lb \
       --source /tmp/http-lb.yaml \
       --global
    

Pengujian

Perhatikan alamat IPv4 yang dicadangkan:

gcloud compute addresses describe example-ip \
    --format="get(address)" \
    --global

Setelah menunggu beberapa menit hingga perubahan diterapkan, Anda dapat menguji penyiapan ini.

Pada command line, jalankan perintah curl berikut:

curl http://IP_ADDRESS/two-dogs.jpg

Di browser, buka http://IP_ADDRESS/two-dogs.jpg.

Langkah selanjutnya