Logo
ปรับ Nginx ยังไงให้เว็บไหลลื่นไม่มีสดุด

Articles / Website

ปรับ Nginx ยังไงให้เว็บไหลลื่นไม่มีสดุด

การปรับแต่งการตั้งค่า Nginx เพื่อความประสิทธิภาพสูงสุด

Published on August 12, 2023

บทความ: การปรับแต่งการตั้งค่า Nginx เพื่อประสิทธิภาพสูงสุด

Nginx เป็นเซิร์ฟเวอร์ที่เป็นที่นิยมด้วยประสิทธิภาพและความสามารถในการขยายขนาด อย่างไรก็ตามเพื่อใช้ประโยชน์สูงสุดจากการทำงานของ Nginx จำเป็นต้องปรับแต่งการตั้งค่าให้เหมาะสม ในบทความนี้เราจะสำรวจกลยุทธ์และเคล็ดลับในการปรับแต่งการตั้งค่า Nginx เพื่อให้บรรลุประสิทธิภาพสูงสุดสำหรับแอปพลิเคชันเว็บของคุณ

1. เข้าใจเรื่องหน้าที่ของแอปพลิเคชันของคุณ

ก่อนที่จะทำการเปลี่ยนแปลงการตั้งค่า ควรทำความเข้าใจเรื่องหน้าที่ของแอปพลิเคชันเว็บของคุณ พิจารณาปัจจัยเช่นปริมาณการเข้าชมเว็บ เนื้อหาของคำขอ และการเชื่อมต่อพร้อมกันที่คาดหวังได้ เรียนรู้ข้อมูลเหล่านี้เพื่อนำมาแนะนำการปรับแต่งให้เหมาะสม

2. เลือกจำนวน Worker Processes ที่เหมาะสม

Nginx ใช้ worker processes เพื่อจัดการคำขอเข้าที่มาถึง ควรเลือกจำนวน worker processes ที่เหมาะสมตามจำนวน CPU cores และหน่วยความจำของเซิร์ฟเวอร์ของคุณ มี worker process เพิ่มขึ้นสามารถจัดการคำขอพร้อมกันได้มากขึ้น แต่หากมีมากเกินไปอาจทำให้ทรัพยากรหมด

worker_processes auto;  # ตั้งค่าตามจำนวน CPU cores

3. กำหนดจำนวน Worker Connections

กำหนดจำนวนสูงสุดของการเชื่อมต่อที่ worker process แต่ละตัวสามารถจัดการได้พร้อมกัน จำนวนนี้มีผลต่อความสามารถของเซิร์ฟเวอร์ในการจัดการคำขอพร้อมกัน ควรคำนวณตามหน่วยความจำที่มีและการเชื่อมต่อที่คาดหวัง

events {
    worker_connections 2048;  # คำนวณตามปริมาณการเข้าชมที่คาดหวัง

4. ปรับแต่ง Keepalive Connections

การเชื่อมต่อ Keepalive อนุญาตให้ไคลเอนต์นำเชื่อมต่อที่เปิดใช้งานมาใช้สำหรับคำขอหลายรายการ ลดการใช้ทรัพยากร กำหนดค่า keepalive timeouts อย่างเหมาะสมเพื่อสมดุลการใช้ทรัพยากรและความตอบสนอง

http {
    keepalive_timeout 15s;  # ตั้งค่าเวลาที่ใช้รอในการเชื่อมต่อ keepalive

5. การบีบอัด Gzip

เปิดใช้งานการบีบอัด Gzip เพื่อลดขนาดของข้อมูลที่ส่งออกไป สิ่งนี้ช่วยลดเวลาโหลดหน้าและการใช้แบนด์วิดธ์

http {
    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    gzip_types text/plain text/css application/javascript application/json;

6. เปิดใช้งาน Browser Caching

ใช้การเก็บแคชในเบราว์เซอร์โดยกำหนดเฮดเดอร์แคชที่เหมาะสม ช่วยลดคำขอที่ซ้ำซ้อนสำหรับค่าเนื้อหาแบบสถานะจากผู้เยี่ยมชมเก่า

location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {
    expires 30d;
    add_header Cache-Control "public, max-age=2592000";

7. ปรับแต่งขนาดของ Buffer

ปรับขนาดของ buffer ให้ตรงกับหน่วยความจำและการเข้าชมที่คาดหวัง ช่วยให้การจัดการคำขอมีประสิทธิภาพ

http {
    client_max_body_size 10M;
    client_body_buffer_size 128k;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 4k;

8. ป้องกันความปลอดภัย

ปรับแต่งการป้องกันด้วยการเพิ่มเฮดเดอร์ความปลอดภัย ใช้การเข้ารหัส SSL/TLS และกำหนดค่าไฟร์วอลล์เพื่อเพิ่มความปลอดภัยของเซิร์ฟเวอร์

9. ตรวจสอบและปรับแต่งต่อ

ตรวจสอบประสิทธิภาพเซิร์ฟเวอร์อย่างสม่ำเสมอด้วยเครื่องมือเช่น `top`, `htop`, และโมดูลสถานะที่มีใน Nginx วิเคราะห์และปรับแต่งการตั้งค่าตามความต้องการ

Config เบื่องต้นสำหรับมือใหม่

user nginx;
worker_processes auto;  # Set to the number of CPU cores
worker_rlimit_nofile 10240;  # Adjust based on available resources

events {
    worker_connections 2048;  # Adjust based on expected traffic
}

http {
    include mime.types;
    default_type application/octet-stream;
    
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    
    keepalive_timeout 15s;
    keepalive_requests 100;
    
    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    gzip_types text/plain text/css application/javascript application/json;
    
    client_max_body_size 10M;
    client_body_buffer_size 128k;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 4k;
    
    server {
        listen 80;
        server_name yourdomain.com;

        location / {
            root /path/to/your/website;
            index index.html index.htm;
        }
    }
}

สรุป

การปรับแต่งการตั้งค่า Nginx เพื่อความประสิทธิภาพสูงสุดเป็นสิ่งสำคัญในการให้บริการเซิร์ฟเวอร์เว็บที่มีประสิทธิภาพสูง โดยการที่เข้าใจการทำงานของแอปพลิเคชันเว็บและการปรับแต่งจำนวน worker processes, การเชื่อมต่อ, การบีบอัดข้อมูล, การใช้แคชเบราว์เซอร์ และการปรับแต่งขนาดของ buffer คุณสามารถให้บริการแอปพลิเคชันเว็บของคุณในระดับที่ดีที่สุดได้ ความตระหนักและการปรับแต่งอย่างสม่ำเสมอเป็นสิ่งสำคัญในการรักษาประสิทธิภาพขณะที่เว็บไซต์ของคุณเติบโต

โปรดทราบว่าเนื้อหาในบทความนี้เป็นข้อมูลแนะนำเบื้องต้นเท่านั้น การปรับแต่ง Nginx ควรพิจารณาอย่างรอบคอบและการปรับแต่งด้านความปลอดภัยอาจมีความสำคัญอย่างยิ่ง หากคุณมีความต้องการเฉพาะ เช่น การจัดการการเข้าชมที่หนัก การตั้งค่า SSL/TLS หรือการแบ่งโหลด ควรพิจารณาการตั้งค่าเพิ่มเติมและหาคำแนะนำจากผู้เชี่ยวชาญในสาขานี้

Logo

100/280 Soi 17, Delight Village, Bang Khun Thian - Chaitalay, Phanthai Norasing, Samut Sakhon 74000


Copyright © 2024 DriteStudio All Rights Reserved.

😾 😃 💍
Chat with us.