2012-06-26 17 views
22

Tôi đang sử dụng nginx + fastcgi (manage.py runfcgi ...) để sản xuất cho một số dự án Django của mình. Rất nhiều người đề nghị sử dụng nginx + gunicorn. Lợi thế của việc sử dụng gunicorn thay vì sử dụng máy chủ fastcgi của Django là gì?Đâu là bất lợi khi sử dụng máy chủ fastcgi của Django

+0

Ngoài ra, hãy xem uwsgi. –

+1

FastCGI Không được chấp nhận kể từ phiên bản 1.7: Hỗ trợ FastCGI không còn được dùng nữa và sẽ bị xóa trong Django 1.9., Vì vậy tôi khuyên bạn nên truy cập uWSGI. – ashish

Trả lời

28

Tôi chỉ nói lý do tại sao bạn cần phải sử dụng các máy chủ WSGI-like :) nhưng nếu bạn cảm thấy thoải mái với việc sử dụng fcgi - chỉ cần sử dụng nó

Câu trả lời ngắn: WSGI (như giao thức) là mát mẻ vì its native

Hoặc nếu "Bạn cần phải đi sâu hơn" (c)

Câu hỏi tiếp theo "Máy chủ FastCGI và WSGI giống như?"

Một số câu trả lời ở đây:

Về gunicorn, uWSGI và cherokee, nginx. Đừng trộn chúng!

nginx là máy chủ web có thể xử lý các yêu cầu http và có thể gửi nó tới chương trình phụ trợ của WSGI. (Nhưng trước hết nó cực kỳ nhanh để xử lý nội dung tĩnh.) Và chương trình phụ trợ WSGI xử lý ứng dụng django của bạn.

Về cherokee, tôi nghĩ rằng nó xử lý các nhiệm vụ giống như nginx nhưng tôi không làm việc với nó.

Và gunicorn, uWSGI là backend WSGI mà chạy đề với ứng dụng django và làm many other tasks

Và hmmm, gunicorn say rằng

Được một máy chủ mà chỉ chạy trên nền tảng Unix-like, kỳ lân được mạnh mẽ gắn với triết lý Unix làm một điều và (hy vọng) làm tốt. Mặc dù sử dụng HTTP, unicorn thực sự là một máy chủ ứng dụng phụ trợ để chạy các ứng dụng Ruby Rack-based.

Tôi luyện tập cho django tôi ứng dụng nginx (ổn định mới nhất từ ​​nginx.org Repos) + uWSGI (từ chuồng Debian) - hoạt động hoàn hảo :)


sửa 18.05.2012

liên kết đến năm 2010 chủ đề với so sánh fcgi gunicorn uWSGI

fcgi (ren) 640 r/s

fcgi (prefork 4 bộ vi xử lý) 240 r/s (*)

gunicorn (2 công nhân) 1100 r/s

gunicorn (5 công nhân) 1300 r/s

gunicorn (10 wo rkers) 1200 r/s (?!?)

uwsgi (2 nhân) 1800 r/s

uwsgi (5 nhân viên) 2100 r/s

uwsgi (10 nhân viên) 2300 r/s

(* này làm máy tính của tôi đặc biệt chậm chạp như CPU ​​khi qua mái nhà)

+7

"FastCGI vs. WSGI" là câu hỏi sai. FastCGI là một giao thức mạng và WSGI là một quy ước gọi Python. [flup] (http://trac.saddi.com/flup) có cổng FastCGI-to-WSGI. Lệnh 'runfcgi' của Django thực sự dựa trên flup, và do đó sử dụng WSGI. Một câu hỏi hay hơn là flup so với uwsgi hoặc flup so với gunicorn. –

+0

Bạn nói đúng về "FastCGI vs. WSGI". Thay đổi chủ đề thành WSGI. Và tôi nghĩ trận chiến 'flup vs. uwsgi vs. gunicorn' thắng uWSGI. Tôi sẽ cố gắng cung cấp một số bằng chứng sớm. – nk9

+3

Vâng, ai "thắng" phụ thuộc vào tiêu chí của bạn là gì. Tôi đang lưu trữ một tá trang web có lưu lượng truy cập thấp, vì vậy việc bảo trì và sử dụng bộ nhớ trở nên quan trọng hơn * đối với tôi * so với hiệu suất thô (được chi phối bởi truy vấn cơ sở dữ liệu.) Uwsgi không được đóng gói trong debian squeeze (hiện tại ổn định) , trong khi flup và gunicorn là. –

4

như b1- nói, WSGI có nguồn gốc (hãy nhìn vào this post).

Ngoài ra, this post có một câu hỏi tương tự.

Từ quan điểm cá nhân của tôi, một thời gian trước tôi đã sử dụng Nginx + uwsg in vhost mode để chạy các dự án khác nhau trên máy chủ của tôi.

+0

... và uWSGI có chế độ zerg^_ ^ – nk9

Các vấn đề liên quan