全部产品
Search
文档中心

Serverless App Engine:Menerapkan layanan Nginx menggunakan SAE

更新时间:Dec 17, 2025

Anda dapat menggunakan Nginx untuk membangun situs web statis atau bertindak sebagai reverse proxy. Reverse proxy meneruskan permintaan klien ke aplikasi backend lainnya. Topik ini menjelaskan cara menerapkan layanan Nginx menggunakan Serverless App Engine (SAE).

Ikhtisar solusi

Seperti yang ditunjukkan pada gambar berikut, Nginx dapat mengembalikan sumber daya statis seperti halaman HTML dari aplikasi itu sendiri atau meneruskan permintaan ke aplikasi backend lainnya berdasarkan URI dari permintaan klien. Nginx kemudian mengembalikan tanggapan ke klien.

Anda juga dapat menerapkan layanan Nginx hanya untuk membangun situs web statis. Dalam skenario ini, Anda tidak perlu menerapkan aplikasi backend atau menyertakan aturan pengalihan dalam konfigurasi Nginx Anda.

1. Siapkan sumber daya situs web statis

Topik ini menggunakan file contoh berikut: nginx-demo.zip.

Folder html/ berisi sumber daya situs web statis yang digunakan dalam contoh ini:

  • index.html: Halaman indeks default.

  • error.html: Halaman kesalahan 404 default.

Dalam lingkungan produksi, Anda dapat membuat sumber daya situs web statis seperti halaman HTML, gambar, dan gaya CSS sesuai kebutuhan.

2. Tulis file konfigurasi Nginx

Folder conf/ dalam contoh ini berisi file konfigurasi Nginx nginx.conf. Bagian berikut menjelaskan konfigurasinya.

Dalam lingkungan produksi, Anda dapat memodifikasi file konfigurasi Nginx berdasarkan kebutuhan Anda. Untuk informasi lebih lanjut, lihat dokumentasi resmi Nginx.

Konfigurasikan aturan akses sumber daya statis

...
    server {
        listen       80 default_server; # Atur port pendengar untuk layanan web menjadi 80.
        ...
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;

        # Halaman yang dikembalikan ketika klien mengakses jalur root.
        location / {
            root /usr/share/nginx/html; # Jalur di dalam kontainer tempat sumber daya situs web statis disimpan. Saat Anda membangun citra, sumber daya situs web statis lokal dicopy ke jalur ini di dalam citra.
            index index.html;
        }

        # Halaman yang dikembalikan ketika klien menemui kesalahan 404.
        error_page 404 /error.html;
        location = /error.html {
            root /usr/share/nginx/html;
        }
    }
...

Konfigurasikan aturan pengalihan

Bagian ini mengasumsikan bahwa Anda telah menerapkan aplikasi backend yang dapat diakses dari Internet.

Dalam contoh ini, titik akhir dan port dari aplikasi backend adalah 121.40.xx.xx:80. Untuk meneruskan permintaan dengan URI yang cocok dengan /api/* ke aplikasi backend dan menulis ulang jalur URI menjadi /*, gunakan konfigurasi berikut:

...
        # Konfigurasikan aturan pengalihan permintaan.
        location /api/ {
            proxy_pass http://121.40.xx.xx:80/;
        }
...
Jika Anda hanya ingin membangun situs web statis, Anda tidak perlu mengonfigurasi aturan pengalihan.
Jika layanan Nginx yang diterapkan dapat mengakses aplikasi backend melalui jaringan Virtual Private Cloud (VPC), Anda dapat menggunakan Alamat IP pribadi dalam aturan pengalihan.

3. Bangun citra dan unggah ke repositori citra

Anda dapat membangun citra di lingkungan lokal atau pada instans Elastic Compute Service (ECS). Pastikan Docker terinstal di lingkungan tersebut.
  1. Tulis sebuah Dockerfile. Kode berikut menunjukkan contoh Dockerfile:

    # Tentukan citra dasar Nginx.
    FROM nginx:1.20.2
    
    # Salin file konfigurasi Nginx lokal ke jalur tertentu di lingkungan kontainer.
    COPY conf/nginx.conf /etc/nginx/nginx.conf
    
    # Salin file sumber daya statis lokal ke jalur tertentu di lingkungan kontainer.
    COPY html /usr/share/nginx/html
  2. Bangun citra. Jalankan perintah berikut di direktori tempat Dockerfile berada:

    docker build . -t my-nginx:1.0
    # .: Membangun citra di direktori saat ini.
    # -t: Menentukan nama citra dan tag.
  3. Uji citra.

    # Jalankan citra.
    docker run -d -p 80:80 my-nginx:1.0
    
    # Perintah curl harus terinstal di lingkungan.
    # Uji akses sumber daya statis.
    curl localhost:80/
    # Uji permintaan pengalihan ke aplikasi backend. Ini hanya berlaku ketika layanan Nginx meneruskan permintaan ke aplikasi backend menggunakan Alamat IP publik.
    curl localhost:80/api/
  4. Dorong citra ke repositori citra Container Registry (ACR) Alibaba Cloud. Untuk informasi lebih lanjut, lihat Dorong dan tarik citra (Edisi Perusahaan) atau Dorong dan tarik citra (Edisi Pribadi).

4. Terapkan Nginx dari citra dan konfigurasikan akses jaringan

  1. Terapkan layanan Nginx dari citra yang Anda dorong ke ACR. Untuk informasi lebih lanjut, lihat Terapkan aplikasi dari citra.

  2. Jika Anda ingin layanan Nginx meneruskan permintaan ke titik akhir publik aplikasi backend, konfigurasikan Gateway NAT Internet untuk VPC tempat layanan Nginx berada. Secara default, aplikasi yang diterapkan di SAE tidak dapat mengakses Internet. Untuk informasi lebih lanjut, lihat Konfigurasikan Gateway NAT Internet untuk mengaktifkan aplikasi SAE mengakses Internet.

    Jika layanan Nginx menggunakan titik akhir pribadi aplikasi backend untuk meneruskan permintaan, Anda tidak perlu mengonfigurasi gateway NAT.
  3. Konfigurasikan titik akhir publik untuk layanan Nginx sehingga klien dapat mengakses layanan menggunakan Alamat IP publik. Untuk informasi lebih lanjut, lihat Lampirkan instans CLB ke aplikasi untuk menghasilkan titik akhir publik atau pribadi. Setel Container Port menjadi 80.

    Jika Anda ingin klien mengakses layanan Nginx melalui nama domain, konfigurasikan resolusi nama domain untuk Alamat IP publik.
  4. Akses layanan Nginx dari browser untuk mengujinya.

5. (Opsional) Modifikasi file konfigurasi Nginx setelah penyebaran

Untuk memodifikasi file konfigurasi Nginx, Anda tidak perlu membangun ulang citra. Anda dapat menggunakan ConfigMap untuk menyuntikkan file konfigurasi ke dalam kontainer untuk manajemen konfigurasi yang efisien.

Penting

File konfigurasi yang disuntikkan ke dalam kontainer menggunakan ConfigMap akan menimpa file konfigurasi asli di dalam kontainer.

  1. Buat item konfigurasi (ConfigMap) di namespace aplikasi Nginx. Untuk informasi lebih lanjut, lihat Buat item konfigurasi (ConfigMap). Setel Configuration Item Name menjadi nginx. Tambahkan variabel dengan kunci nginx.conf dan setel nilainya menjadi isi dari file konfigurasi yang dimodifikasi.

    lQEe08Yf6s

  2. Suntikkan file konfigurasi menggunakan ConfigMap dan sebarkan ulang aplikasi. Untuk informasi lebih lanjut, lihat Suntikkan konfigurasi. Untuk Configuration Item, pilih ConfigMap nginx yang Anda buat di langkah sebelumnya. Untuk Key, pilih nginx.conf. Setel Mount Path menjadi /etc/nginx/nginx.conf. Jalur ini adalah lokasi file konfigurasi Nginx di dalam citra.

    8qK49P9SJq

  3. Setelah aplikasi diterapkan, gunakan WebShell untuk masuk ke instans aplikasi tertentu dan verifikasi bahwa file konfigurasi telah dimodifikasi.

    p7GRcntPRp