favicon.ico with Nginx

ท่าานเจอกับปัญหา nginx error log โชว์แต่ error ว่าไม่พบ favicon.ico ใช่หรือไม่?

2013/03/27 14:48:45 [error] 7924#0: *2436 open() “/home/nginx/activity.xxx.com/htdocs/favicon.ico” failed (2: No such file or directory), client: 119.44.16.42, server: activity.xxx.com, request: “GET /favicon.ico HTTP/1.1”, host: “praew.xxx.com”
2013/03/27 14:48:48 [error] 7924#0: *2436 open() “/home/nginx/activity.xxx.com/htdocs/favicon.ico” failed (2: No such file or directory), client: 119.44.16.42, server: activity.xxx.com, request: “GET /favicon.ico HTTP/1.1”, host: “praew.xxx.com”
2013/03/27 14:48:50 [error] 7924#0: *2436 open() “/home/nginx/activity.xxx.com/htdocs/favicon.ico” failed (2: No such file or directory), client: 119.44.16.42, server: activity.xxx.com, request: “GET /favicon.ico HTTP/1.1”, host: “praew.xxx.com”

ทางแก้คือ.. บอกให้ nginx ส่งค่า 204 ไปยัง browser ครับ

nginx.conf

http {
....
...
..
.
server {
        location = /favicon.ico {
                return 204;
                access_log     off;
                log_not_found  off;
                }
        }
}

502 Bad Gateway

เรื่องราวมันเริ่มมาจาก Drupal ครับ
มีงานที่ต้องพัฒนาระบบ ซื้อ-ขาย บน Drupal มี shopping cart บลาๆๆ

จวบจนมันใกล้เสร็จละ tester ได้รายงานว่า
‘ถ้าคลิกซื้อไปเรื่อยๆ จนถึงจุดหนึ่ง มันจะ 502 Bad Gateway’

เราก็เลยมาหาสาเหตุกัน
เริ่มจาก Nginx ก่อนเลยครับ ผมไปดู log
/var/log/nginx/shop.xxx.com.error.log

อ่า~ เจอตัวการแล้ว คิดว่านะแก้ได้ ด้วยการเพิ่ม size ของอะไรสักอย่าง
ก็เลยใส่ parameter ลงไปใน Nginx

proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;

หลังจาก restart Nginx เสร็จแล้วก็ลองทดสอบอีกครั้ง ก็ยังขึ้น 502 Bad Gateway เหมือนเดิม
ก็เลยมีความสงสัยว่า header size มันคืออะไร …

http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/

ยาวเลยครับ… ซึ่งไม่ใช่ทางแก้ครับ ;_;
ก็เลยมานั่งคิดว่า ‘ทำไมกดซื้อสินค้าไปเรื่อยๆแล้วขึ้น 502’

cookie แหงๆ

เปิด Inspect Element ใน Google Chrome แล้วนั่งดูตัวเลข cookie กันเลยครับ

chrome inspect resources

chrome inspect resources

ก็เจอตัวการครับนั่นคือ พอเรากดซื้อสินค้าไปเรื่อยๆ cookie ก็จะโตขึ้นเรื่อยๆ จนเกือบๆ 4000 พอกดซื้ออีกครั้ง ก็บู้มมมมม กลายเป็นโกโก้ครั้น

จึงได้ความรู้มาอีกอย่างว่า

Internet Explorer 8 allowed cookies up to 4095 bytes
Chrome 9 allowed cookies up to 4096 bytes
Opera 11 allowed cookies up to 4096 bytes
Safari 5 allowed coookies up to 4097 bytes
Firefox 3.6.3 allowed cookies up to 4097 bytes

http://stackoverflow.com/questions/2543851/chrome-cookie-size-limit