จากที่ได้มีโอกาสเล่น Linux Server ได้ Setup Web Server ไว้ใช้งาน และได้ติดตั้ง Apache และ NGINX เป็น Web Server เพื่อทำงานร่วมกัน และได้ลอง Config ทั้ง 2 ตัวไปเรื่อย ก็พบจุดที่น่าสนใจอยู่อย่างหนึ่ง นั่นคือเรื่องของ Charset
สำหรับ Charset บน NGINX นั้น ไม่ได้มีการกำหนดค่า Default ไว้ ซึ่งต่างจาก Apache ที่มีการกำหนดค่า Default ไว้แล้ว
ซึ่งผมได้ทดสอบด้วยการใช้ curl ทำการยิง Request เอาแต่ Header ด้วย option -I
(หรือ --head
ก็ได้)
หากว่ายังไม่ได้ติดตั้ง curl ก็ติดตั้งซะให้เรียบร้อย (คำสั่งด้านล่าง ใช้กับ Ubuntu และ Debian)
1 2 3 |
# apt-get update # apt-get install curl |
การทดสอบ จะเป็นการ Request ไปที่ไฟล์ index.php ซึ่งจะเป็นหน้าที่ของ Apache และไฟล์ index.html ซึ่งจะเป็นหน้าที่ของ NGINX ได้ผลดังนี้

จะเห็นว่า ในส่วนของ Apache นั้น ใน Header ส่วนของ Content-Type
จะมีการกำหนดค่าเป็น UTF-8
แต่สำหรับ NGINX จะไม่มีการกำหนดค่าไว้
ที่เห็น ส่วนของ
Server
ใน Header ของ Apache เป็น NGINX เพราะผมให้ NGINX ทำการ Forward งานให้ Apache อีกที
สำหรับการตั้งค่า Default charset นั้น ให้ Login เข้าไปที่ Server ด้วย Root และทำการแก้ไขไฟล์ /etc/nginx/nginx.conf
ในส่วนของ http
ดังนี้
1 2 3 4 5 6 7 |
http { # Other config charset UTF-8; } |
แล้วทำการ Restart NGINX ครั้งนึง
1 |
# service nginx restart |
ลองใช้ curl ทดสอบดูใหม่ จะได้ผลดังนี้

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