ผมงง? nginx เปิดเป็นตาย

ผมทำเว็บอัพโหลด ใช้ apache2 ทำงานปกติดีแต่มันกิน ram เยอะ ผมก็เลยจะลองเปลี่ยนไปใช้ nginx สักหน่อย
ทำตามติดตั้ง nginx ตาม net แหละครับ
aptitude install nginx
aptitude install lighttpd
update-rc.d -f lighttpd remove
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
/etc/init.d/nginx start

สำหรับการ config ไฟล์ ผม config หมดแล้วครับ และสามารถ run ได้ตามปกติ
ผมใช้ nginx port 90 ทดลองดาวน์โหลดไฟล์ก็ปกติดี
แต่พอจะใช้จริงๆก็มีปัญหา

ขั้นตอนดาวน์โหลดไฟล์ที่ผม test มีดังนี้
http://www.saveufile.com/car_test.php -> [url=http://www.saveufile.com:90/downloading.php]http://www.saveufile.com:90/downloading.php
ทดลองคนเดียวก็ปกติ แต่พอ redirect ใ้ห้ user มาหน้า car_test.php เพื่อ redirect ใช้ port 90 downloading มันก็นิ่งทันที
restart หลายครั้งพอให้ user มาใช้ก็นิ่งเหมือนเดิม

ผมดู error log ขึ้นดังนี้
2010/02/12 00:51:11 [error] 10666#0: *372 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 124.157.128.73, server: saveufile.com, request: “GET /download/downloading.php?file=2009021313bcda93e04184c02f0240b3250553870&downloadcode=20100212a71e12c7&username= HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “www.saveufile.com:90”, referrer: "http://www.saveufile.com/car_test.php?file=2009021313bcda93e04184c02f0240b3250553870"
2010/02/12 00:52:19 [error] 10666#0: *385 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 117.47.70.152, server: saveufile.com, request: “GET /download/downloading.php?file=2009060977144bb3373f0f382575c8e567038bff1&downloadcode=2010021240facfd1&username= HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “www.saveufile.com:90”, referrer: “http://www.saveufile.com/car_test.php?file=2009060977144bb3373f0f382575c8e567038bff1

ขอถามผู้รู้ว่าเป็นเพราะอะไรครับ

php ทำงานไม่ทันมั้งครับ
หรือไม่ก็ไม่ได้เขียนให้มันใช้งาน x-sendfile (เอ๊ะ บน nginx ต้องใช้อะไรแล้วหว่า)

มันแป๊บเดียวเองนะครับ ไม่กี่ request เอง

sendfile on ใน config ครับ

[quote author=massacre link=topic=25941.msg246707#msg246707 date=1265913191]
มันแป๊บเดียวเองนะครับ ไม่กี่ request เอง
[/quote]ถ้าไม่ได้ใช้ x-sendfile เท่ากับว่า 1 คนโหลด = 1 process ของ php ครับ
จะให้โหลดพร้อมกันหลายๆ คนก็คูณเอาเลย -*-’ (สรุปก็เปลืองแรมกะ PHP เท่าเดิม)

แก้ script ซะนะครับ ถ้าจะใช้ nginx/lighttpd ให้ได้เต็มประสิทธิภาพ

ผมเคยเป็นอยู่ แต่ตอนนี้แก้หายแล้ว แต่จำไม่ได้ว่าแก้อะไรไปบ้าง เพราะว่าลองเยอะมาก

ลองใช้
http://wiki.nginx.org/NginxHttpLimitZoneModule
ดูครับว่ามันจะหายเปล่า ถ้าจำไม่ผิดนะครับ

ผมลง nginx จากกรทู้นี้ http://www.howtoforge.com/installing-nginx-with-php5-and-mysql-support-on-ubuntu-9.04
ปัญหาอาจเกิดจาก http://chrisjohnston.org/2009/setting-up-a-lemp-stack-ubuntu-904

nano /etc/default/php-fastcgi

and add:
START=yes

Which user runs PHP? (default: www-data)

EXEC_AS_USER=www-data

Host and TCP port for FASTCGI-Listener (default: localhost:9000)

FCGI_HOST=localhost
FCGI_PORT=9000

Environment variables, which are processed by PHP

PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000

ซึ่ง default มันไม่มีให้ config

แล้วขอลองไปแก้แล้วค่อยมาบอกผลครับ วันนี้ดึกแล้ว

สำหรับ x-sendfile ผมเคยลองใช้กับ apache2 แล้วเหมือนกับว่ามันมีปัญหากับ mod ตัวอื่น(ไม่แน่ใจว่าเป็น mod_limitipconn) เวลาโหลดไฟล์แล้วมันชอบเสียและมันชอบค้าง จึงเอาออก

สำหรับ x-sendfile ของ nginx ให้ลองใช้ nginx ให้ได้ก่อน เดี๋ยวลอง test ครับ

สำหรับ config นี้ ผมลองจำกัด connection ไว้ 2 ตอน test ก็ทำงานปกติดีครับ แต่พอให้ user ใช้ก็ตาย
ไม่รู้ว่าเกี่ยวกับอันนี้หรือเปล่า เพราะตอนที่ให้ user ใช้ ไม่ได้เอา config นี้ออก ครับ
เดี๋ยวขอ test ด้านบนก่อน เดี๋ยวกลับมา test อันนี้อีกทีนึง ขอบคุณครับ

ตอนนี้ยังแก้ไม่หายครับ ไปลอง lighttpd ก่อนดีกว่า T-T