뚠뚠멍의 생각들

Pengaturan Utama nginx sebagai Web Server

  • Bahasa Penulisan: Bahasa Korea
  • Negara Standar: Semua Negaracountry-flag
  • TI

Dibuat: 2024-09-26

Dibuat: 2024-09-26 21:20

Nginx adalah perangkat lunak sumber terbuka yang sering digunakan sebagai web server atau web proxy server.

Dengan konfigurasi yang tepat, Nginx dapat memberikan konten statis secara efisien.

Saya ingin mencatat beberapa konfigurasi penting di sini.


Beberapa Konfigurasi Penting Terkait Kinerja

1. Kompresi gzip

Saat memuat situs web, kita menerima banyak file dari web server, seperti JavaScript, gambar, HTML, dan CSS.

Alih-alih mengirimkan konten ini dalam bentuk aslinya, kita dapat menggunakan kompresi gzip untuk secara signifikan mengurangi jumlah data yang ditransmisikan.


Dengan kata lain, penerapannya akan menghasilkan:

- Pengurangan jumlah data, sehingga menghemat bandwidth.

- Penghematan sumber daya server.

- Peningkatan kecepatan pemuatan bagi pengguna.


Di sisi lain, karena server harus menjalankan kompresi gzip sebelum mengirimkan respons, penggunaan CPU server dapat meningkat.

Jenis file apa yang akan dikompresi, tingkat kompresi, dan ukuran file yang akan dikompresi perlu diuji sebelum diterapkan di lingkungan produksi.


Berikut adalah beberapa konfigurasi terkait gzip.

* gzip_vary menginstruksikan server untuk mengirim konten yang dikompresi dan tidak dikompresi, tergantung pada apakah klien mendukung gzip atau tidak. (Memberitahu bahwa konten versi berbeda dapat dikirimkan bergantung pada header permintaan klien (Accept-Encoding)).


2. Pengaturan proxy_buffer

Nginx menyimpan respons dalam buffer sebelum mengirimkannya ke klien.

Ketika web server mengirim respons ke klien, jika kecepatan klien lambat, server harus terus menunggu untuk mengirimkan data. (Kemacetan jaringan)

Karena server terus menggunakan sumber daya, untuk mengatasi hal ini, buffer digunakan untuk memproses respons sementara terlepas dari kecepatan pemrosesan klien. Ini menghasilkan keuntungan sebagai berikut:

- Optimalisasi beban server

- Pengurangan kemacetan jaringan

※ Ukuran buffer yang terlalu besar dapat menyebabkan penundaan dalam pengiriman data real-time seperti text streaming, sehingga pengujian sangat diperlukan. Terutama dengan banyaknya layanan terkait AI baru-baru ini, jika text streaming tidak berfungsi, periksa pengaturan ini.


3. Pengaturan worker dan http

Worker adalah proses yang menangani permintaan klien, dan kita dapat mengatur berapa banyak worker yang akan digunakan untuk setiap inti CPU server.

HTTP biasanya memiliki pola permintaan - koneksi - respons - penutupan koneksi, tetapi untuk mengurangi sumber daya yang digunakan untuk banyak permintaan, koneksi klien dapat dipertahankan. Ini adalah pengaturan keep alive.

Alasan kedua hal ini dikelompokkan adalah sebagai berikut.

Jika server yang digunakan memiliki 4 inti, jumlah koneksi yang secara teoritis mungkin adalah 1.024 * 4 = 4.096.

(Mungkin tidak akurat tergantung pada sumber daya atau lingkungan lalu lintas)

Ketika 4.096 klien terhubung secara bersamaan dan menggunakan semua keepalive selama 65 detik,

Pengguna ke-4.097 yang mencoba untuk terhubung tidak akan dapat terhubung, yang dapat menyebabkan penundaan respons.


Oleh karena itu, dengan asumsi sumber daya server stabil karena auto scaling, jika terjadi penundaan respons selama peristiwa, pengaturan di atas dapat memberikan pengaruh tidak langsung.


4. Lainnya - blok location

Beberapa pengaturan seperti proxy buffer dapat diterapkan ke setiap URL permintaan.

* Beberapa pengaturan seperti keep-alive diterapkan pada tingkat HTTP/Server dan tidak dapat dikonfigurasi per blok.

server {
listen 80;
server_name example.com;


Pengaturan di atas dapat digunakan untuk mengoptimalkan kinerja web. Setelah melakukan pengujian yang cukup dengan berbagai kasus uji, optimalkan kinerja server!

* Pengaturan nginx yang telah diubah dapat diterapkan tanpa waktu henti server, sehingga umumnya stabil.






Komentar0