สวัสดีครับ
nginx Error 504 Gateway Timeout เกิดจากอะไรได้บ้างครับ
มีทางแก้ไหมครับ
ขอบคุณครับ
สวัสดีครับ
nginx Error 504 Gateway Timeout เกิดจากอะไรได้บ้างครับ
มีทางแก้ไหมครับ
ขอบคุณครับ
Gateway Timeout ครับ เอา nginx ไปครอบ apache อีกทีใช่ไหมครับ ลองปรับ buffer เพิ่มอีก ลองดูครับ
อารมณ์ประมานว่า nginx timeout ระหว่างรอข้อมูลจาก apache น่ะนะมันเลยบอกว่า Gateway Timeout
คือ nginx รอ response จาก backend (ซึ่งในที่นี่คือ apache ล่ะมั่ง) นานเกินไปจนเกิด timeout ครับ
วิธีแก้ … แก้ที่ code ครับ
วิธีแก้ … แก้ที่ code ครับ << เห็นด้วยอย่างแรง
เป็นที่โค้ดก็ได้ครับ หรือเป็นที่ A[COLOR=#333333]pache ล่ม หรือค้างก็ได้ครับ
ผมเคยเจอเว็บใหญ่ๆอย่าง [/COLOR]blognone กับ jquery.com ขึ้น 503 อยู่เป็นบางครั้งด้วยครับ :189bbdde:
บางทีถ้าใช้ buffer น้อยๆ หรือปิดเลย จะขึ้นบ่อยครับ แต่ก็ต้องดู apache ด้วยแหละว่ามันไหวมั้ย
เอ ทำไมข้อมูลอันนี้กับของผมไม่ตรงกันเลยล่ะครับ … ตามที่ผมเข้าใจ / เจอมา เข้าใจว่าแบบนี้นะครับ
error 502 คือ bad gateway ครับ (คือ nginx รันอยุ่ แต่ backend ตาย)
error 503 คือ custom error page ครับ (คือเขียน rules ดักไว้ตามที่ต้องการ เช่น maintenace, serve huge load อะไรพวกนี้)
error 504 คือ gateway timeout ครับ ซึ่งถ้าตามที่ผมเข้าใจ อธิบายได้ตามข้างล่างฮะ
ง่ายๆครับ “timeout” ครับ ค่าที่ปรับก็จะเป็นค่าต่างๆที่มันเกี่ยวกะเวลาครับ เช่น ระยะเวลา process php, timeout ต่างๆใน nginx.conf อะไรพวกนี้
php.ini
max_execution_time
request_terminate_timeout
nginx.conf
proxy_connect_timeout, send_timeout หรืออะไรต่างๆนาๆที่มันมี timeout น่ะนะ
หรือถ้าใช้ nginx เป็น web server นี่ลองดูพวก fastcgi_timeout ต่างๆครับ
สำหรับกรณี buffer น้อยไป (ถ้าเอา nginx มาเป็น reverse proxy แล้ว cache static files นี่ ภาพขนาดใหญ่ๆ มันจะ มาไม่ครบ / คุณภาพห่วย ครับ)
ขอบคุณที่คำตอบครับ กำลังหาวิธีการแก้ไขอยู่ครับ
Config
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
tcp_nodelay on;
tcp_nopush on;
#keepalive_timeout 3;
#keepalive_timeout 65;
client_max_body_size 2048m;
gzip on;
scgi_temp_path temp/uwsgi_temp 1 2;
uwsgi_temp_path temp/uwsgi_temp 1 2;
fastcgi_connect_timeout 1;
fastcgi_buffers 8 128k;
fastcgi_buffer_size 128k;
fastcgi_read_timeout 300;
access_log off;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
gzip_static on;
server_tokens off;
}
php script มัน reply กลับ apache ช้าไปครับ
ตัว nginx มันรอไม่ไหวเลย timeout ไปก่อน
มีวิธีปรับแต่งไหมครับ