ในแต่ล่ะครั้งที่เราสร้างเวบไซด์โดยเฉพาะ Server ที่เป็น windows เราจะคุ้นเคยกับการ config IIS (Internet Information Server ) เป็นอย่างดี โดยเฉพาะ IIS 6 ซึ่งอยู่บน windows 2003 server (ปัจจุบัน version ล่าสุด คือ IIS 7 บน Windows Server 2008) Omar AL Zabir เจ้าของเวบ site pageflakes.com ได้เขียนใน blog ของเขาเรื่อง Best practices for creating websites in IIS 6.0 ผมได้นำมาสรุปเอาไว้ว่า
ควรสร้าง Application Pool แยกออกมาในแต่ล่ะเวบไชด์
เนื่องจาก ใน IIS มี process ที่ชื่อว่า w3wp.exe สามารถที่จะสร้าง instance การทำการได้หลายๆ ตัวพร้อมกันตามจำนวน app pool โดยปกติแล้ว IIS จะมี DefaultAppPool เป็น app pool เบื้องต้น แต่ล่ะ app pool จะมีหน้าที่ในการจัดการ In-Process seesion , memory cache บน server ถ้าหากเรามีหลายๆเวบ site บน Server ทุกตัวจะใช้ DefaultAppPool ร่วมกัน ทำให้การจัดการเป็นไปได้ยาก ในเวลาที่บางเวบไซด์มีจำนวน traffic จำนวนมาก เพราะฉนั้นเราควรแยก app pool ออกมาแบบ one website per one app pool ทำได้โดย
ควร disable DefaultAppPool เพื่อป้องกันเข้าใจผิดและเข้าไปใช้งาน DefaultAppPool ได้อีก
อย่างแรกเลย click ขวา ที่ Application Pool แล้วเลือก new application pool ควรตั้งชื่อ app pool ให้เหมือนกับชื่อเวบไซด์ เพื่อให้ง่ายต่อความเข้าใจ
เวลาที่เราสร้างเวบไซด์ใหม่ก็ให้ Reference ให้ตรงกับ App pool ที่เราสร้างไว้ เหมือนรูปด้านบน
Customize Website properties for performance, scalability and maintainability
- Maping host header ให้ถูกต้องทั้ง ที่มี www และ ไม่มี www (domain.com,www.domain.com)
- เปิดการใช้ log ดังรูป เพื่อนำข้อมูลใช้ในการวิเคราะห์ เพื่อหาข้อมูล bandwidth หรือ อาจจะใช้ Google Analysis Service ก็ได้
- ควรเพิ่ม defualt.aspx ถ้าหาก user เปิดเวบไซด์เข้ามาโดยไม่มีการเรียกชื่อ file .aspx defualt.aspx ก็จะโดนเรียกใช้ทันที
- Turn on Content Expiration. เพื่อให้ Browser เก็บ cache นั้นเอาไว้ประมาณ 30 วัน
Remove the X-Powered-By: ASP.NET header เพื่อลดการ ส่งค่าไปมาให้โดยไม่มีประโยชน์ (21 Byte) ในแต่ล่ะครั้ง อีกทั้งช่วยป้องกันพวก hacker ได้ในระดับหนึ่ง เพิ่ม "From" header และ ตั้งชื่อ server name มีประโยชน์ในการทำ load balancing
- Set 404 Not found ไปที่ file ที่เราสร้างขึ้นเอง เช่น myerrorpage.aspx มีประโยชน์ ในการจัดการ error message
- ตรวจสอบว่าเราเลือกใช้ ASP.NET 2.0 สำหรับเวบไซด์ ASP.NET 2.0 3.0 3.5
สุดท้าย ควรเปิดการใช้การบีบอัด header โดยใช้ gzip สามารถเข้าไปดูวิธีการได้ที่
turn on IIS 6.0 gzip compression.
l
