คำถามติดแท็ก gunicorn

12
หัวหน้างานไม่โหลดไฟล์การกำหนดค่าใหม่
ฉันมีปัญหาในการปรับใช้แอพ Django โดยใช้ Gunicorn และ Supervisor ในขณะที่ฉันสามารถให้ Gunicorn ให้บริการแอปของฉัน (โดยการตั้งค่า PYTHONPATH ที่เหมาะสมและเรียกใช้คำสั่ง apropriate หนึ่งตัวจากการตั้งค่า supervisord) ฉันไม่สามารถทำให้หัวหน้างานเรียกใช้งานได้ มันจะไม่เห็นแอพของฉัน ฉันไม่ทราบวิธีการตรวจสอบให้แน่ใจว่าไฟล์ปรับแต่งนั้นใช้ได้ นี่คือสิ่งที่ supervisorctl พูดว่า: # supervisorctl start myapp_live myapp_live: ERROR (no such process) ฉันใช้งานบน Ubuntu 10.04 ด้วยการกำหนดค่าต่อไปนี้: ไฟล์ /home/myapp/live/deploy/supervisord_live.ini: [program:myapp_live] command=/usr/local/bin/gunicorn_django --log-file /home/myapp/logs/gunicorn_live.log --log-level info --workers 2 -t 120 -b 127.0.0.1:10000 -p deploy/gunicorn_live.pid …

3
nginx ไม่มี server_name และใช้ที่อยู่ IP แบบคงที่เท่านั้น
นี่คือการปรับใช้เว็บแอปแรกของฉันและฉันพบปัญหาทุกประเภท ฉันกำลังจะใช้งาน nginx + gunicorn สำหรับแอป Django แต่ส่วนใหญ่คำถามนี้เกี่ยวข้องกับการกำหนดค่า nginx สำหรับบริบทบางอย่าง - nginx จะได้รับการเชื่อมต่อและพร็อกซีไปยังเซิร์ฟเวอร์ภายในของ gunicorn ในการกำหนดค่า nginx server_nameฉันจะต้องระบุที่ใด ฉันไม่ได้วางแผนที่จะใช้ชื่อโดเมนใด ๆ เพียงแค่ใช้ ip ภายนอกของเครือข่าย (เป็นแบบคงที่) และหมายเลขพอร์ตเพื่อรับฟัง ความปรารถนาของฉันคือเมื่อฉันเข้าถึงบางสิ่งบางอย่างเช่นhttp://xxx.xxx.xxx.xxx:9050ฉันจะได้รับเว็บไซต์ ต่อไปนี้เป็นตัวอย่างรหัสที่ฉันจะตั้งค่าฐานสำหรับการอ้างอิง server { listen 80; server_name WHAT TO PUT HERE?; root /path/to/test/hello; location /media/ { # if asset versioning is used if ($query_string) { expires …
34 ubuntu  nginx  gunicorn 

1
วิธีการแก้ไขข้อผิดพลาดไทม์เอาต์ของผู้ปฏิบัติงานวิกฤติของ gunicorn?
ฉันใช้ nginx และ gunicorn เพื่อโฮสต์เว็บไซต์ของฉันในเซิร์ฟเวอร์สองเครื่อง เซิร์ฟเวอร์ทั้งสองมีแพคเกจรุ่นเดียวกันและโฮสต์เว็บไซต์สำเร็จแล้ว แต่หนึ่งใน Gunicorn เซิร์ฟเวอร์ตัวหนึ่งของฉันมักจะได้รับการหยุดพัก [CRITICAL]Worker Timeout Booting worker with pid Worker cannot boot with pid หลังจากนี้ฉันได้รับข้อผิดพลาด 502 Badgateway ในหน้าเว็บ ฉันต้องรีสตาร์ทกระบวนการ gunicorn เพื่อเปิดเว็บไซต์ ต่อไปนี้เป็นบันทึกข้อผิดพลาด: 2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994) 2014-02-16 14:29:53 [1267] [CRITICAL] WORKER TIMEOUT (pid:4994) 2014-02-16 14:29:53 [22140] [INFO] Booting worker with pid: …
26 nginx  gunicorn 

1
การตั้งค่าแบบ Keepalive สำหรับ Gunicorn เบื้องหลัง ELB โดยไม่มี Nginx
REST API ของแอปของเราให้บริการโดย Gunicorn ( ไม่ใช่ Nginx) ที่ทำงานบนอินสแตนซ์ AWS EC2 ด้วยการตั้งค่าการปรับขนาดอัตโนมัติ / การโหลดบาลานซ์โดยทั่วไป การหมดเวลาว่างของตัวโหลดบาลานซ์คือ 60 วินาทีและการหมดเวลาการรักษาของ Gunicorn คือ 2 วินาที เราได้เห็น504 Gateway Timeoutการตอบสนองเป็นระยะ ๆจากการกำหนดค่านี้ ตามเอกสารของ Amazonอาจเป็นเพราะการหมดเวลาแบบเก็บสดของเซิร์ฟเวอร์ต่ำกว่าการตั้งค่าการหมดเวลาที่ไม่ได้ใช้งานของ load balancer: สาเหตุที่ 2: อินสแตนซ์ที่ลงทะเบียนแล้วปิดการเชื่อมต่อกับ Elastic Load Balancing โซลูชันที่ 2: เปิดใช้งานการตั้งค่าแบบ keep-alive ในอินสแตนซ์ EC2 ของคุณและตั้งค่าการหมดเวลาแบบ keep-alive ให้มากกว่าหรือเท่ากับการตั้งค่าการหมดเวลาที่ไม่ได้ใช้งานของตัวโหลดบาลานซ์ของคุณ ด้วย Nginx ค่าเริ่มต้นkeepalive_timeoutคือ 75 วินาทีซึ่งเห็นได้ชัดว่าทำงานได้ดีกับการตั้งค่าเริ่มต้นของ ELB อย่างไรก็ตามGunicorn …

1
nginx ยุติการเชื่อมต่อหลังจาก 65k bytes
ฉันได้รับการกำหนดค่า nginx เป็นส่วนหน้าของแอปพลิเคชัน Python ที่ทำงานภายใต้ gunicorn แต่ nginx กำลังยุติการเชื่อมต่อหลังจากส่งข้อมูลไปแล้วประมาณ 65k ตัวอย่างเช่นฉันมีมุมมองที่มีลักษณะเช่นนี้: def debug_big_file(request): return HttpResponse("x" * 500000) แต่เมื่อฉันเข้าถึง URL นั้นผ่าน nginx ฉันจะได้รับ 65283 ไบต์เท่านั้น: $ curl https://example.com/debug/big-file | wc … curl: (18) transfer closed with outstanding read data remaining 0 1 65283 โปรดทราบว่าทุกอย่างทำงานได้ตามที่คาดไว้เมื่อเข้าถึง gunicorn โดยตรง: $ curl http://localhost:1234/debug/big-file | wc …
11 nginx  gunicorn 

2
การปรับใช้แอปพลิเคชัน CherryPy: เซิร์ฟเวอร์สแตนด์อะโลน, WSGI หรือ NGinx
ฉันตั้งใจจะใช้ VPS เดียวเพื่อปรับใช้แอป CherryPy ที่มีปริมาณการใช้งานต่ำเป็นไดเรกทอรีย่อย เช่นexample.com/app1, example.com/app2ฯลฯ หลังจากทำการค้นคว้าเกี่ยวกับการปรับใช้ WSGI ดูเหมือนว่าวิธีที่ต้องการสำหรับการปรับใช้แอพคือการใช้เซิร์ฟเวอร์ WSGI (Gunicorn, uWSGI, ฯลฯ ) และ NGinx ในการตั้งค่า reverse-proxy ดูเหมือนว่า overkill การใช้สองเว็บเซิร์ฟเวอร์ควบคู่ - โดยเฉพาะอย่างยิ่งนับตั้งแต่แอป CherryPy ของฉันตัวเองเป็นเว็บเซิร์ฟเวอร์ - แต่ฉันไม่ต้องการที่จะยกเลิกความคิดตามที่ปรากฏทุกที่ ฉันไม่ได้เป็นผู้เชี่ยวชาญแน่นอนดังนั้นฉันต้องการที่จะหารือ ฉันเห็นสามตัวเลือก: ปรับใช้ CherryPy ด้วยตัวเอง ปรับใช้ภายใต้ Gunicorn หรือเซิร์ฟเวอร์ WSGI อื่น ปรับใช้ภายใต้เซิร์ฟเวอร์ WSGI และ reverse-proxy กับ NGinx ซึ่งดูเหมือนจะเป็นทางออกของทุกคน คำถามของฉัน: เหตุผลหลักที่ฉันเห็นรูปแบบนี้ทุกที่คืออะไร Nginx เป็นเพียงที่ดีหรือไม่? สำหรับแอปที่มีปริมาณการใช้งานต่ำเซิร์ฟเวอร์ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.