Site icon PlusMagi's Blog By Pitt Phunsanit

Nginx: set modular เป็น Jigsaw

การปรับปรุง Nginx ให้เป็น Modular จะช่วยให้คุณจัดการ Config ได้ง่ายขึ้นมาก ลดความซ้ำซ้อน และลดโอกาสเกิด Error เวลาแก้ไข


สร้างโฟลเดอร์สำหรับ Global Snippets

แทนที่จะเขียน Config ชุดเดิมซ้ำๆ ในทุกไฟล์ ( เช่น HTTP/3 Headers, SSL Settings, หรือ Security Headers ) ให้แยกมันออกมาเป็นไฟล์เล็ก ๆ ใน /etc/nginx/snippets/

ตัวอย่างไฟล์ที่ควรแยก


ทำความสะอาดไฟล์ Virtual Host ( sites-enabled )

นำ Snippets ที่สร้างไว้มา include ในไฟล์ Config ของแต่ละโดเมนแทน
ตัวอย่าง: plusmagi.com.wordpress.conf ( เวอร์ชันใหม่ )

server {
    listen 443 ssl;
    listen 443 quic reuseport;
    server_name pitt.plusmagi.com;

    root /var/www/plusmagi.com/pitt;
    index index.php index.html;

    # --- Use Snippets ---
    include snippets/http3.conf;
    include snippets/security.conf;
    
    # SSL (Let's Encrypt)
    ssl_certificate /etc/letsencrypt/live/pitt.plusmagi.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/pitt.plusmagi.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/php-fpm.conf;
        fastcgi_param PHP_VALUE "open_basedir=/proc/:/tmp/:/var/www/plusmagi.com/pitt";
    }
    
    # Caching assets
    include snippets/static-assets.conf;
}
Exit mobile version