วิธีการกำหนด Default charset ให้กับ NGINX

จากที่ได้มีโอกาสเล่น Linux Server ได้ Setup Web Server ไว้ใช้งาน และได้ติดตั้ง Apache และ NGINX เป็น Web Server เพื่อทำงานร่วมกัน และได้ลอง Config ทั้ง 2 ตัวไปเรื่อย ก็พบจุดที่น่าสนใจอยู่อย่างหนึ่ง นั่นคือเรื่องของ Charset

NGINX-cover_Config-Default-Charset

สำหรับ Charset บน NGINX นั้น ไม่ได้มีการกำหนดค่า Default ไว้ ซึ่งต่างจาก Apache ที่มีการกำหนดค่า Default ไว้แล้ว

ซึ่งผมได้ทดสอบด้วยการใช้ curl ทำการยิง Request เอาแต่ Header ด้วย option -I (หรือ --head ก็ได้)

หากว่ายังไม่ได้ติดตั้ง curl ก็ติดตั้งซะให้เรียบร้อย (คำสั่งด้านล่าง ใช้กับ Ubuntu และ Debian)

การทดสอบ จะเป็นการ Request ไปที่ไฟล์ index.php ซึ่งจะเป็นหน้าที่ของ Apache และไฟล์ index.html ซึ่งจะเป็นหน้าที่ของ NGINX ได้ผลดังนี้

curl request header
curl request header

จะเห็นว่า ในส่วนของ Apache นั้น ใน Header ส่วนของ Content-Type จะมีการกำหนดค่าเป็น UTF-8 แต่สำหรับ NGINX จะไม่มีการกำหนดค่าไว้

ที่เห็น ส่วนของ Server ใน Header ของ Apache เป็น NGINX เพราะผมให้ NGINX ทำการ Forward งานให้ Apache อีกที

สำหรับการตั้งค่า Default charset นั้น ให้ Login เข้าไปที่ Server ด้วย Root และทำการแก้ไขไฟล์ /etc/nginx/nginx.conf ในส่วนของ http ดังนี้

แล้วทำการ Restart NGINX ครั้งนึง

ลองใช้ curl ทดสอบดูใหม่ จะได้ผลดังนี้

curl request header
curl request header

จะเห็นว่า Header ส่วนของ Content-Type จะมีการกำหนดค่าเป็น UTF-8 แล้ว

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.