Menyebarkan file statis web

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk:❌ Basic/Standard ✔️ Enterprise

Artikel ini memperlihatkan kepada Anda cara menyebarkan file statis Anda ke instans paket Azure Spring Apps Enterprise menggunakan buildpack Tanzu Web Servers. Pendekatan ini berguna jika Anda memiliki aplikasi yang murni untuk menyimpan file statis seperti HTML, CSS, atau aplikasi front-end yang dibangun dengan kerangka kerja JavaScript pilihan Anda. Anda dapat langsung menyebarkan aplikasi ini dengan server web yang dikonfigurasi secara otomatis (HTTPD dan NGINX) untuk melayani aset tersebut.

Prasyarat

Menyebarkan file statis Anda

Catatan

Artikel ini berfokus pada menjelaskan konfigurasi penyebaran dan pemecahan masalah khusus untuk penyebaran file statis web. Untuk memahami skenario build dan penyebaran umum untuk paket Azure Springs Apps Enterprise, lihat bagian Membangun layanan sesuai permintaan di Gunakan Tanzu Build Service dan Cara menyebarkan aplikasi poliglot.

Anda dapat menyebarkan file statis ke Azure Spring Apps menggunakan server web NGINX atau HTTPD dengan cara berikut:

  • Anda dapat menyebarkan file statis secara langsung. Azure Spring Apps secara otomatis mengonfigurasi server web yang ditentukan untuk melayani file statis.
  • Anda dapat membuat aplikasi front-end dalam kerangka kerja JavaScript pilihan Anda, lalu menyebarkan aplikasi front-end dinamis Anda dari kode sumber. Azure Spring Apps membuat aplikasi Anda menjadi konten statis dan menggunakan server web yang dikonfigurasi untuk menyajikan file statis.

Anda juga dapat membuat file konfigurasi server untuk menyesuaikan server web.

Contoh penyebaran

Contoh Azure CLI di bagian ini menunjukkan pembuatan dan penyebaran file statis untuk dua skenario registri kontainer:

  • Registri kontainer terkelola Azure Spring Apps.
  • Registri kontainer terkelola pengguna.

Membangun dan menyebarkan file statis secara langsung

Contoh ini menyebarkan file statis secara langsung menggunakan file konfigurasi server default yang dibuat secara otomatis.

Perintah berikut menyebarkan file statis:

az spring app deploy
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx

Untuk informasi tentang menggunakan variabel lingkungan, lihat bagian Mengonfigurasi file konfigurasi server yang dibuat secara otomatis.

Membangun dan menyebarkan aplikasi front-end Anda sebagai konten statis

Contoh ini menyebarkan aplikasi front-end dinamis dari kode sumber.

Perintah berikut menyebarkan aplikasi:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build

Membangun dan menyebarkan file statis menggunakan file konfigurasi yang dikustomisasi

Contoh ini menyebarkan file statis menggunakan file konfigurasi server yang disesuaikan.

Perintah berikut menyebarkan aplikasi:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code>

Untuk informasi selengkapnya, lihat bagian Menggunakan file konfigurasi server yang dikustomisasi di artikel ini.

Kode Sampel

Catatan

Kode sampel dikelola oleh komunitas paketo sumber terbuka.

Sampel buildpack Paketo menunjukkan kasus penggunaan umum untuk beberapa jenis aplikasi yang berbeda, termasuk kasus penggunaan berikut:

  • Melayani file statis dengan file konfigurasi server default menggunakan BP_WEB_SERVER untuk memilih HTTPD atau NGINX.
  • Menggunakan Node Package Manager untuk membangun aplikasi React ke dalam file statis yang dapat dilayani oleh server web. Gunakan langkah-langkah berikut:
    1. Tentukan skrip di scripts bawah properti file package.json yang membangun aset statis siap produksi Anda. Untuk React, ini buildadalah .
    2. Cari tahu di mana aset statis disimpan setelah skrip build berjalan. Untuk React, aset statis disimpan secara ./build default.
    3. Atur BP_NODE_RUN_SCRIPTS ke nama skrip build.
    4. Atur BP_WEB_SERVER_ROOT ke direktori output build.
  • Melayani file statis dengan file konfigurasi server Anda sendiri, menggunakan HTTPD atau NGINX.

Mengonfigurasi file konfigurasi server yang dibuat secara otomatis

Anda dapat menggunakan variabel lingkungan untuk memodifikasi file konfigurasi server yang dibuat secara otomatis. Tabel berikut ini memperlihatkan variabel lingkungan yang didukung.

Variabel lingkungan Nilai yang Didukung Deskripsi
BP_WEB_SERVER nginx atau httpd Menentukan jenis server web, baik nginx untuk Nginx atau httpd untuk server HTTP Apache. Diperlukan saat menggunakan file konfigurasi server yang dibuat secara otomatis.
BP_WEB_SERVER_ROOT Jalur file absolut atau jalur file relatif terhadap /ruang kerja. Mengatur direktori akar untuk file statis. Default adalah public.
BP_WEB_SERVER_ENABLE_PUSH_STATE benar atau salah Mengaktifkan perutean status push untuk aplikasi Anda. Terlepas dari rute yang diminta, index.html selalu dilayani. Berguna untuk aplikasi web satu halaman.
BP_WEB_SERVER_FORCE_HTTPS benar atau salah Memberlakukan HTTPS untuk koneksi server dengan mengalihkan semua permintaan untuk menggunakan protokol HTTPS.

Variabel lingkungan berikut tidak didukung.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Menggunakan file konfigurasi server yang dikustomisasi

Anda dapat mengonfigurasi server web dengan menggunakan file konfigurasi server yang disesuaikan. Tabel berikut ini memperlihatkan jalur file konfigurasi:

Server web Jalur file konfigurasi default Cara menyesuaikan jalur file konfigurasi server
nginx nginx.conf di bawah jalur akar kode sumber Anda. Gunakan variabel BP_NGINX_CONF_LOCATION lingkungan untuk menentukan nama file konfigurasi. Tempatkan file di bawah jalur akar kode sumber Anda.
httpd httpd.conf di bawah jalur akar kode sumber Anda. Tidak didukung.

File konfigurasi Anda harus sesuai dengan batasan yang dijelaskan dalam tabel berikut.

Konfigurasi Deskripsi Konfigurasi Nginx Konfigurasi Httpd
Port mendengarkan Server web harus mendengarkan port 8080. Layanan memeriksa port pada TCP untuk kesiapan dan apakah itu langsung. Anda harus menggunakan variabel PORT templat dalam file konfigurasi. Nomor port yang sesuai disuntikkan ketika server web diluncurkan. listen {{PORT}} Listen "${PORT}"
Jalur log Jalur log konfigurasi ke konsol. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Jalur file dengan izin tulis Server web diberikan izin tulis ke direktori /tmp . Mengonfigurasi jalur lengkap memerlukan izin tulis di bawah direktori /tmp . Misalnya: client_body_temp_path /tmp/client_body_temp
Ukuran isi maksimum permintaan klien yang diterima Server web berada di belakang gateway. Ukuran isi maksimum yang diterima dari permintaan klien diatur ke 500 m di gateway dan nilai untuk server web harus kurang dari 500 m. client_max_body_size harus kurang dari 500 m. LimitRequestBody harus kurang dari 500 m.

Pengikatan buildpack

Menyebarkan file statis ke paket Azure Spring Apps Enterprise mendukung pengikatan buildpack Dynatrace. Pengikatan htpasswd buildpack tidak didukung.

Untuk informasi selengkapnya, lihat Cara mengonfigurasi integrasi APM dan sertifikat CA.

Kesalahan build dan penyebaran umum

Penyebaran file statis Anda ke instans Azure Spring Apps Enterprise dapat menghasilkan kesalahan build umum berikut:

  • ERROR: No buildpack groups passed detection.
  • ERROR: Please check that you're running against the correct path.
  • ERROR: failed to detect: no buildpacks participating

Akar penyebab kesalahan ini adalah bahwa jenis server web tidak ditentukan. Untuk mengatasi kesalahan ini, atur variabel BP_WEB_SERVER lingkungan ke nginx atau httpd.

Tabel berikut ini menjelaskan kesalahan penyebaran umum saat Anda menyebarkan file statis ke Azure Spring Apps Enterprise.

Pesan kesalahan Akar masalah Solution
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Server web gagal dimulai. Validasi file konfigurasi server Anda untuk melihat apakah ada kesalahan konfigurasi. Kemudian, periksa apakah file konfigurasi Anda sesuai dengan batasan yang dijelaskan di bagian Menggunakan file konfigurasi server yang disesuaikan.
mkdir() "/var/client_body_temp" failed (13: Permission denied) Server web tidak memiliki izin tulis ke jalur yang ditentukan. Konfigurasikan jalur di bawah direktori /tmp; misalnya: /tmp/client_body_temp.

Langkah berikutnya