All Products
Search
Document Center

Server Load Balancer:Aktifkan pengalihan dan pendengaran multi-port untuk NLB

Last Updated:Jul 06, 2025

Dalam skenario yang menggunakan sejumlah besar port atau port yang ditetapkan secara dinamis, manajemen konfigurasi menjadi sangat kompleks jika Anda mengonfigurasi listener satu per satu. Selain itu, kesalahan konfigurasi dapat menyebabkan risiko keamanan. Network Load Balancer (NLB) mendukung fitur pendengaran multi-port, yang memungkinkan NLB mendengarkan berdasarkan rentang port dan meneruskan lalu lintas jaringan menggunakan beberapa port dari sebuah listener. Pendengaran multi-port menyederhanakan manajemen konfigurasi dan mengurangi risiko keamanan.

Apa itu pendengaran multi-port?

Pendengaran multi-port memungkinkan NLB mendengarkan berdasarkan rentang port dan meneruskan lalu lintas jaringan yang ditujukan untuk rentang port tersebut. Pendengaran tidak lagi terbatas pada port tertentu.

Setelah Anda mengaktifkan pendengaran multi-port untuk instance NLB, instance NLB akan mendengarkan semua port dalam rentang port yang ditentukan dan secara otomatis meneruskan permintaan langsung ke port yang sama di server backend.

Pendengaran multi-port memungkinkan Anda mengelola lalu lintas jaringan pada beberapa port secara fleksibel dan secara signifikan menyederhanakan manajemen konfigurasi. Fitur ini sangat ideal untuk skenario yang menggunakan sejumlah besar port atau port yang ditetapkan secara dinamis.

Fitur utama

  1. Mendengarkan Berdasarkan Rentang Port: Pendengaran multi-port memungkinkan Anda menentukan rentang port yang berisi nomor port berurutan, seperti 1000 hingga 2000. NLB mendengarkan semua port dalam rentang port yang ditentukan.

  2. Konfigurasi Disederhanakan: Pendengaran multi-port menghilangkan kebutuhan untuk mengonfigurasi listener satu per satu. Fitur ini sangat ideal untuk skenario yang menggunakan sejumlah besar port yang tetap sama antara listener dan server backend. Pendengaran multi-port memungkinkan Anda mengelola lalu lintas jaringan secara fleksibel bahkan jika port layanan sering diubah atau diperluas. Anda tidak perlu menambahkan atau mengubah port satu per satu.

Skema penggunaan

Pendengaran multi-port sangat ideal untuk skenario yang menggunakan sejumlah besar port atau port yang ditetapkan secara dinamis, seperti:

  • Game online, termasuk game peran tunggal daring (RPG), game pemain versus lingkungan (PvE), dan game simulasi (SLG). Dalam skenario tersebut, sejumlah besar port digunakan untuk memproses data game dalam berbagai skenario. Port ditetapkan untuk skenario game atau ruang game yang berbeda.

  • Komunikasi real-time, termasuk konferensi video dan pendidikan daring. Dalam skenario tersebut, sejumlah besar port digunakan untuk memproses data audio dan video real-time serta data sinyal.

Skenario contoh

Sebuah perusahaan membuat virtual private cloud (VPC) di wilayah China (Hangzhou). Instance NLB diterapkan di VPC. Dua instance Elastic Compute Service (ECS) bernama ECS01 dan ECS02 ditambahkan ke grup server instance NLB. Aplikasi yang dapat diakses diterapkan pada instance ECS.

Perusahaan ingin mengaktifkan pendengaran multi-port untuk instance NLB untuk mendengarkan port 8080 hingga 8090. Port-port tersebut ditetapkan untuk layanan yang berbeda.

Batasan

Untuk mengaktifkan pendengaran multi-port untuk instance NLB, Anda harus mengaitkan instance NLB dengan grup server yang memiliki pendengaran multi-port diaktifkan. Anda tidak dapat mengubah status pendengaran multi-port untuk listener atau grup server. Untuk mengaktifkan pendengaran multi-port, Anda harus membuat grup server dan listener serta mengaktifkan pendengaran multi-port.

Prasyarat

  • VPC dibuat di wilayah China (Hangzhou). vSwitch dibuat di masing-masing dua zona. Untuk informasi lebih lanjut, lihat Buat dan Kelola VPC.

  • Instance ECS dibuat di masing-masing vSwitch. Aplikasi yang menggunakan port 8080 hingga 8090 diterapkan pada instance ECS.

    Kode Contoh untuk Menerapkan Aplikasi Uji

    Dalam contoh ini, CentOS 7.9 dan NGINX 1.20.1 digunakan. Skrip contoh berikut menunjukkan cara menerapkan aplikasi uji yang menggunakan port 8080 hingga port 8090.

    1. Masuk ke ECS01.

      1. Jalankan perintah vi ECS01_server_install.sh dan tekan tombol I untuk membuka editor.

      2. Salin dan tempel perintah berikut:

        #!/bin/bash
        
        # Instal NGINX
        yum install -y nginx
        
        # Tentukan direktori untuk blok server NGINX
        NGINX_CONF_DIR=/etc/nginx/conf.d
        
        # Tentukan direktori untuk file index.html
        HTML_DIR=/usr/share/nginx/html
        
        # Secara rekursif buat dan konfigurasikan file HTML
        for PORT in $(seq 8080 8090); do
          CONF_FILE=${NGINX_CONF_DIR}/app_${PORT}.conf
          HTML_FILE=${HTML_DIR}/index_app${PORT}.html
          
          # Buat konten HTML
          echo "Halo Dunia! Ini adalah ECS01, port server adalah ${PORT}." > ${HTML_FILE}
          
          # Tambahkan konfigurasi blok server NGINX
          cat > ${CONF_FILE} << EOF
        server {
            listen ${PORT};
            server_name localhost;
        
            location / {
                root ${HTML_DIR};
                index index_app${PORT}.html;
            }
        }
        EOF
        
        done
        
        # Uji apakah file konfigurasi NGINX benar
        nginx -t && systemctl start nginx
        
        echo "Nginx telah dikonfigurasi untuk mendengarkan pada port 8080 hingga 8090."
        
        # Jalankan perintah curl berulang kali untuk mengakses port 8080 hingga 8090 dari localhost
        for PORT in $(seq 8080 8090); do
          echo "Mengakses http://localhost:${PORT}"
          curl http://localhost:${PORT}
        done
        

      3. Tekan tombol Esc dan masukkan :wq untuk menyimpan modifikasi.

      4. Jalankan perintah sudo sh ECS01_server_install.sh untuk menjalankan skrip.

      5. Respons berikut menunjukkan bahwa port 8080 hingga 8090 dapat diakses:

        ...
        Nginx telah dikonfigurasi untuk mendengarkan pada port 8080 hingga 8090.
        Mengakses http://localhost:8080
        Halo Dunia! Ini adalah ECS01, port server adalah 8080.
        Mengakses http://localhost:8081
        Halo Dunia! Ini adalah ECS01, port server adalah 8081.
        Mengakses http://localhost:8082
        Halo Dunia! Ini adalah ECS01, port server adalah 8082.
        Mengakses http://localhost:8083
        Halo Dunia! Ini adalah ECS01, port server adalah 8083.
        Mengakses http://localhost:8084
        Halo Dunia! Ini adalah ECS01, port server adalah 8084.
        Mengakses http://localhost:8085
        Halo Dunia! Ini adalah ECS01, port server adalah 8085.
        Mengakses http://localhost:8086
        Halo Dunia! Ini adalah ECS01, port server adalah 8086.
        Mengakses http://localhost:8087
        Halo Dunia! Ini adalah ECS01, port server adalah 8087.
        Mengakses http://localhost:8088
        Halo Dunia! Ini adalah ECS01, port server adalah 8088.
        Mengakses http://localhost:8089
        Halo Dunia! Ini adalah ECS01, port server adalah 8089.
        Mengakses http://localhost:8090
        Halo Dunia! Ini adalah ECS01, port server adalah 8090.

        Jika port tidak dapat diakses menggunakan perintah curl, periksa apakah port sedang digunakan atau apakah perintah salah.

    2. Masuk ke ECS02.

      1. Jalankan perintah vi ECS02_server_install.sh dan tekan tombol I untuk membuka editor.

      2. Salin dan tempel perintah berikut:

        #!/bin/bash
        
        # Instal NGINX
        yum install -y nginx
        
        # Tentukan direktori untuk blok server NGINX
        NGINX_CONF_DIR=/etc/nginx/conf.d
        
        # Tentukan direktori untuk file index.html
        HTML_DIR=/usr/share/nginx/html
        
        # Secara rekursif buat dan konfigurasikan file HTML
        for PORT in $(seq 8080 8090); do
          CONF_FILE=${NGINX_CONF_DIR}/app_${PORT}.conf
          HTML_FILE=${HTML_DIR}/index_app${PORT}.html
          
          # Buat konten HTML
          echo "Halo Dunia! Ini adalah ECS02, port server adalah ${PORT}." > ${HTML_FILE}
          
          # Tambahkan konfigurasi blok server NGINX
          cat > ${CONF_FILE} << EOF
        server {
            listen ${PORT};
            server_name localhost;
        
            location / {
                root ${HTML_DIR};
                index index_app${PORT}.html;
            }
        }
        EOF
        
        done
        
        # Uji apakah file konfigurasi NGINX benar
        nginx -t && systemctl start nginx
        
        echo "Nginx telah dikonfigurasi untuk mendengarkan pada port 8080 hingga 8090."
        
        # Jalankan perintah curl berulang kali untuk mengakses port 8080 hingga 8090 dari localhost
        for PORT in $(seq 8080 8090); do
          echo "Mengakses http://localhost:${PORT}"
          curl http://localhost:${PORT}
        done
        

      3. Tekan tombol Esc dan masukkan :wq untuk menyimpan modifikasi.

      4. Jalankan perintah sudo sh ECS02_server_install.sh untuk menjalankan skrip.

      5. Respons berikut menunjukkan bahwa port 8080 hingga 8090 dapat diakses:

        ...
        Nginx telah dikonfigurasi untuk mendengarkan pada port 8080 hingga 8090.
        Mengakses http://localhost:8080
        Halo Dunia! Ini adalah ECS02, port server adalah 8080.
        Mengakses http://localhost:8081
        Halo Dunia! Ini adalah ECS02, port server adalah 8081.
        Mengakses http://localhost:8082
        Halo Dunia! Ini adalah ECS02, port server adalah 8082.
        Mengakses http://localhost:8083
        Halo Dunia! Ini adalah ECS02, port server adalah 8083.
        Mengakses http://localhost:8084
        Halo Dunia! Ini adalah ECS02, port server adalah 8084.
        Mengakses http://localhost:8085
        Halo Dunia! Ini adalah ECS02, port server adalah 8085.
        Mengakses http://localhost:8086
        Halo Dunia! Ini adalah ECS02, port server adalah 8086.
        Mengakses http://localhost:8087
        Halo Dunia! Ini adalah ECS02, port server adalah 8087.
        Mengakses http://localhost:8088
        Halo Dunia! Ini adalah ECS02, port server adalah 8088.
        Mengakses http://localhost:8089
        Halo Dunia! Ini adalah ECS02, port server adalah 8089.
        Mengakses http://localhost:8090
        Halo Dunia! Ini adalah ECS02, port server adalah 8090.

        Jika port tidak dapat diakses menggunakan perintah curl, periksa apakah port sedang digunakan atau apakah perintah salah.

  • Grup keamanan ECS01 dan ECS02 mengizinkan permintaan ke port 8080 hingga 8090.

  • Instance NLB yang menghadap Internet dibuat dan running di VPC. Untuk informasi lebih lanjut, lihat Buat dan Kelola Instance NLB.

  • Nama domain didaftarkan dan nomor penyedia konten Internet (ICP) diperoleh untuk nama domain tersebut. Untuk informasi lebih lanjut, lihat Daftarkan Nama Domain Generik dan Proses Pendaftaran ICP.

Langkah 1: Buat grup server yang mendukung pendengaran multi-port

  1. Masuk ke Konsol NLB.

  2. Di bilah navigasi atas, pilih wilayah tempat instance NLB diterapkan.

  3. Di panel navigasi kiri, pilih NLB > Server Groups.

  4. Di halaman Server Groups, klik Create Server Group.

  5. Konfigurasikan grup server. Tabel berikut menjelaskan beberapa parameter. Parameter lainnya menggunakan nilai default. Untuk informasi lebih lanjut, lihat Buat dan Kelola Grup Server.

    Parameter

    Deskripsi

    Server Group Type

    Pilih tipe grup server yang ingin Anda buat.

    Server Group Name

    Masukkan nama untuk grup server.

    VPC

    Pilih VPC instance NLB dari daftar drop-down. Hanya server dalam VPC instance NLB yang dapat ditambahkan ke grup server.

    Multi-port Forwarding

    Aktifkan pengalihan multi-port.

    Setelah Anda mengaktifkan fitur pengalihan multi-port, Anda tidak perlu menentukan port saat menambahkan server ke grup server. NLB meneruskan permintaan langsung ke server backend berdasarkan port yang diminta.

    Penting

    Jika Anda mengaktifkan pengalihan multi-port untuk listener, Anda hanya dapat mengaitkan listener dengan grup server yang memiliki pengalihan multi-port diaktifkan.

    Configure Health Check

    Aktifkan pemeriksaan kesehatan.

    Health Check Port

    Untuk mengaktifkan pengalihan multi-port, Anda harus menentukan port pemeriksaan kesehatan.

    Pemeriksaan kesehatan memeriksa port untuk memeriksa status kesehatan server backend. Jika port tidak mengembalikan respons yang valid, server backend dinyatakan tidak sehat.

    Dalam contoh ini, port pemeriksaan kesehatan diatur ke port 8080.

  1. Setelah Anda menyelesaikan konfigurasi, klik Create. Setelah grup server dibuat, klik Add Backend Server di pesan yang muncul.

  2. Pilih ECS01 dan ECS02 sebagai server backend. Parameter lainnya menggunakan nilai default. Anda tidak perlu menentukan port server jika pendengaran multi-port diaktifkan. Klik OK.

Langkah 2: Buat listener yang mendukung pendengaran multi-port

Catatan

Dalam contoh ini, listener TCP dibuat.

  1. Masuk ke Konsol NLB.

  2. Di bilah navigasi atas, pilih wilayah tempat instance NLB diterapkan.

  3. Di halaman Instances, temukan instance NLB yang ingin Anda kelola dan klik Create Listener di kolom Actions.

  4. Konfigurasikan listener. Tabel berikut menjelaskan beberapa parameter. Parameter lainnya menggunakan nilai default. Untuk informasi lebih lanjut, lihat Tambahkan Listener TCP. Setelah Anda menyelesaikan konfigurasi, klik Submit.

    Konfigurasikan listener:

    Parameter

    Deskripsi

    Multi-port Listening/Forwarding

    Aktifkan pendengaran dan pengalihan multi-port.

    Listener Port Range

    Tentukan port pertama dan terakhir dari rentang port yang ingin Anda dengarkan. Dalam contoh ini, rentang port dimulai dengan port 8080 dan berakhir dengan port 8090.

    NLB mendengarkan semua port yang termasuk dalam rentang port yang ditentukan dan meneruskan permintaan yang ditujukan untuk port tersebut langsung ke port server backend.

    Penting

    Setelah Anda membuat listener yang mendukung pendengaran multi-port, rentang port listener tidak dapat diubah.

    Kaitkan listener dengan grup server:

    Parameter

    Deskripsi

    Server Group

    Pilih grup server yang berisi ECS01 dan ECS02 dan mendukung pendengaran multi-port.

    Penting

    Pastikan pengalihan multi-port diaktifkan untuk grup server. Jika tidak, grup server gagal dikaitkan dengan listener.

Langkah 3: Tambahkan record DNS

Dalam skenario bisnis nyata, kami sarankan Anda menggunakan record CNAME untuk memetakan nama domain kustom ke nama domain instance NLB Anda.

  1. Di panel navigasi kiri, pilih NLB > Instances.

  2. Di halaman Instances, salin nama domain instance NLB yang ingin Anda kelola.

  3. Lakukan langkah-langkah berikut untuk membuat record CNAME:

    Catatan

    Jika nama domain Anda tidak didaftarkan menggunakan Alibaba Cloud Domains, Anda harus menambahkan nama domain Anda ke Alibaba Cloud DNS sebelum Anda dapat mengonfigurasi record DNS. Untuk informasi lebih lanjut, lihat Kelola Nama Domain. Jika nama domain Anda didaftarkan menggunakan Alibaba Cloud Domains, lewati langkah ini.

    1. Masuk ke <Konsol Alibaba Cloud DNS.

    2. Di halaman Authoritative DNS Resolution, temukan nama domain Anda dan klik DNS Settings di kolom Actions.

    3. Di tab DNS Settings halaman detail nama domain, klik Add DNS Record.

    4. Di panel Add DNS Record, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter.

      Parameter

      Deskripsi

      Record Type

      Pilih CNAME dari daftar drop-down.

      Hostname

      Awalan nama domain. Dalam contoh ini, @ dimasukkan.

      Catatan

      Jika nama domain adalah nama domain root, masukkan @.

      DNS Request Source

      Pilih Default.

      Record Value

      Masukkan CNAME, yaitu nama domain instance NLB.

      TTL Period

      Tentukan nilai time-to-live (TTL) untuk record CNAME yang akan disimpan di server DNS. Dalam contoh ini, nilai default digunakan.

Langkah 4: Uji pendengaran multi-port

  1. Uji ketersediaan instance NLB.

    1. Dalam contoh ini, klien Linux digunakan. Jika Anda menggunakan CentOS dan telnet belum diinstal, jalankan perintah yum install -y telnet untuk menginstal telnet.

    2. Jalankan perintah telnet nama domain port beberapa kali. Nomor port harus termasuk dalam rentang 8080 hingga 8090. Jika Anda menerima paket respons yang mencakup Connected to ..., instance NLB dapat meneruskan permintaan ke server backend.

      Mencoba *.*.*.*...
      Terhubung ke www.example.com.
      Karakter escape adalah '^]'

      Akses nama domain dan port yang termasuk dalam rentang 8080 hingga 8090 dari browser, seperti http://nama domain:8080. Jika Anda menerima respons seperti yang ditunjukkan pada gambar berikut, klien dapat mengakses aplikasi.

      image

  2. Simulasikan kegagalan.

    1. Hentikan aplikasi di ECS01. Jalankan perintah systemctl stop nginx.service di ECS01 untuk menghentikan aplikasi.

    2. Tunggu beberapa menit dan jalankan perintah telnet nama domain port di klien lagi. Nomor port harus termasuk dalam rentang 8080 hingga 8090. Anda masih dapat menerima paket respons yang mencakup Connected to ....

      Mencoba *.*.*.*...
      Terhubung ke www.example.com.
      Karakter escape adalah '^]'

      Akses nama domain dan port yang termasuk dalam rentang 8080 hingga 8090 dari browser, seperti http://nama domain:8080. Jika Anda menerima respons seperti yang ditunjukkan pada gambar berikut, klien dapat mengakses aplikasi.

      image

    3. Mulai aplikasi di ECS01 dan hentikan aplikasi di ECS02. Jalankan perintah systemctl start nginx.service di ECS01 untuk memulai ulang aplikasi, dan jalankan perintah systemctl stop nginx.service di ECS02 untuk menghentikan aplikasi.

    4. Tunggu beberapa menit dan jalankan perintah telnet nama domain port di klien lagi. Nomor port harus termasuk dalam rentang 8080 hingga 8090. Anda masih dapat menerima paket respons yang mencakup Connected to ....

      Mencoba *.*.*.*...
      Terhubung ke www.example.com.
      Karakter escape adalah '^]'

      Akses nama domain dan port yang termasuk dalam rentang 8080 hingga 8090 dari browser, seperti http://nama domain:8080. Jika Anda menerima respons seperti yang ditunjukkan pada gambar berikut, klien dapat mengakses aplikasi.

      image

  3. Uji sebelumnya menunjukkan bahwa titik kegagalan tunggal (SPOF) yang disebabkan oleh satu server tidak merusak ketersediaan instance NLB, dan aplikasi di server backend dapat diakses melalui port apa pun yang termasuk dalam rentang 8080 hingga 8090.