API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) · Pelajaran

Server Upstream dan Penyeimbangan Beban

Konfigurasikan blok upstream Nginx untuk mengelola beberapa server backend dan membagi permintaan yang masuk.

Pelajaran 2 dari 411 langkah

Server Upstream dan Penyeimbangan Beban adalah pelajaran API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Scaling Your Applications

As your web application grows, a single server might not be enough to handle all incoming requests. This can lead to slow response times or even crashes.

To prevent this, we use multiple backend servers to share the load. This improves both performance and reliability.

Introducing Upstream Servers

Nginx can act as a reverse proxy, distributing requests to a group of backend servers. These backend servers are often called upstream servers.

  • Scalability: Handle more traffic by adding more servers.
  • High Availability: If one server fails, others can still respond.
  • Load Balancing: Distribute requests efficiently among servers.

The `upstream` Block

In Nginx, you define a group of backend servers using the upstream block. This block gives a name to your group of servers, which you can then reference in your location blocks.

Think of it as a named pool of resources that Nginx can forward requests to.

Basic Upstream Configuration

Here's how to define a simple upstream block named my_backends with two servers. Each server directive specifies the address (IP or hostname) and port of a backend server.

upstream my_backends {
  server 192.168.1.100:8080;
  server 192.168.1.101:8080;
}

Connecting Upstream to `location`

Once an upstream block is defined, you can use it within a location block in your Nginx server configuration. The proxy_pass directive tells Nginx to forward requests to the specified upstream group.

Notice we use http://my_backends to reference our defined group.

http {
  upstream my_backends {
    server 192.168.1.100:8080;
    server 192.168.1.101:8080;
  }

  server {
    listen 80;
    location /app {
      proxy_pass http://my_backends;
    }
  }
}

Default Load Balancing: Round Robin

By default, Nginx uses the Round Robin load balancing method. This means requests are distributed to upstream servers in a rotating, sequential manner.

  • Request 1 goes to Server A.
  • Request 2 goes to Server B.
  • Request 3 goes to Server A.
  • ...and so on.

It's simple and effective for evenly distributed loads.

Customizing Load with `weight`

What if some servers are more powerful or should handle more traffic? You can use the weight parameter in the server directive to assign different priorities.

A server with a higher weight will receive a proportionally larger share of requests.

`weight` Example in Nginx

In this example, server 1 has a weight of 3, and server 2 has a weight of 1. This means server 1 will receive 3 times as many requests as server 2.

Out of every 4 requests, 3 will go to server 1 and 1 to server 2.

upstream my_backends {
  server 192.168.1.100:8080 weight=3;
  server 192.168.1.101:8080 weight=1;
}

Other Server Directives

Beyond weight, other directives can fine-tune server behavior:

  • max_fails=N: Number of failed attempts before Nginx considers the server unavailable.
  • fail_timeout=Xs: Time for which the server is considered unavailable after max_fails attempts.
  • backup: Marks a server as a backup, used only when all primary servers are down.
  • down: Marks a server as permanently unavailable.

These help Nginx manage server health automatically.

Quick Check: Upstream & Load Balancing

Consider the following Nginx configuration snippet:

upstream api_servers {
  server backend1.example.com:8080 weight=2;
  server backend2.example.com:8080;
}

server {
  listen 80;
  location /api {
    proxy_pass http://api_servers;
  }
}

If 9 requests arrive at the /api endpoint, how many requests will be sent to backend1.example.com:8080?

Recap & Next Steps

You've learned how Nginx uses upstream blocks to group multiple backend servers, enabling load balancing and improving application resilience.

  • upstream block: Defines a named group of servers.
  • proxy_pass: Connects a location to an upstream group.
  • Round Robin: Nginx's default load balancing method.
  • weight directive: Customizes request distribution among servers.

Next, we'll explore how Nginx can improve performance with proxy buffering and caching!

Gratis untuk memulai

Belajar API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Server Upstream dan Penyeimbangan Beban” gratis?

Ya — teks lengkap “Server Upstream dan Penyeimbangan Beban” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), upgrade ke CoddyKit PRO. Kursus API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Server Upstream dan Penyeimbangan Beban”?

Konfigurasikan blok upstream Nginx untuk mengelola beberapa server backend dan membagi permintaan yang masuk. Kamu berlatih API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)?

Tidak diperlukan pengalaman sebelumnya. API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Server Upstream dan Penyeimbangan Beban” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ini?

Ya. Setiap pelajaran API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengonfigurasi Proksi Balik Sederhana
  2. Server Upstream dan Penyeimbangan Beban
  3. Penyanggaan dan Penyimpanan Tembolok Proksi
  4. Meneruskan Header & IP Klien
← Kembali ke API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)