2010-10-14 27 views
58

Tôi chỉ tự hỏi sự khác biệt và lợi thế là gì đối với các CGI khác nhau ở ngoài kia. Cái nào sẽ là tốt nhất cho các kịch bản python, và làm thế nào tôi sẽ nói cho kịch bản những gì để sử dụng?Sự khác biệt và sử dụng giữa WSGI, CGI, FastCGI và mod_python liên quan đến Python?

+0

là mod_wsgi nhanh hơn? Máy chủ hiện tại của tôi sử dụng CGI, có lý do gì để chuyển đổi? – Parker

+0

Có thể trùng lặp: http://stackoverflow.com/questions/219110/how-python-web-frameworks-wsgi-and-cgi-fit-together – Koroviev

+0

Chúng tôi không thể cho bạn biết nếu mod_wsgi sẽ nhanh hơn trong môi trường của bạn.Bạn phải thực sự đo lường chúng trong môi trường của bạn với các ràng buộc của bạn và các ứng dụng của bạn và cấu hình của bạn. –

Trả lời

36

Câu trả lời một phần cho câu hỏi của bạn, bao gồm cả scgi.

CGI vs FCGI

Lazy và không viết nó trên của riêng tôi. Từ wikipedia: http://en.wikipedia.org/wiki/FastCGI

Thay vì tạo quy trình mới cho từng yêu cầu, FastCGI sử dụng các quy trình liên tục để xử lý các yêu cầu đó. Nhiều quy trình có thể được cấu hình, tăng tính ổn định và khả năng mở rộng. Mỗi quy trình FastCGI riêng lẻ có thể xử lý nhiều yêu cầu trong suốt thời gian tồn tại của nó, do đó tránh được chi phí của việc tạo và chấm dứt quá trình theo yêu cầu

+1

Có phải cách họ giao tiếp giống nhau không? (FastCGI & CGI) –

+1

Có một thư viện stdio FastCGI (marcos) cho phép bạn tạo một chương trình duy nhất có khả năng chạy cả dưới dạng CGI và ứng dụng FastCGI: http://www.fastcgi.com/devkit/doc/fastcgi-prog -guide/ap_guide.htm – xorcus

+0

Câu hỏi về FastCGI: Cách xử lý các kết nối đồng thời với một quá trình khi PHP tự chặn ngôn ngữ? Nếu tôi có một cái gì đó "ngủ (100)". Nó sẽ chặn quá trình cho những người dùng khác? Cảm ơn – user345602

13

Ngoài ra còn có trình đọc nền tốt trên CGI, WSGI và các tùy chọn khác. HOWTO: http://docs.python.org/howto/webservers.html

+0

Đây là tài nguyên tuyệt vời dành cho người mới bắt đầu. – GiriB

+0

Có vẻ như url đã lỗi thời. Nhưng cái này hoạt động: https://docs.python.org/2/howto/webservers.html – lesnik

6

Trong dự án như Django, bạn có thể sử dụng máy chủ WSGI (Web Server Gateway Interface) từ Flup module.

Một máy chủ WSGI kết thúc tốt đẹp một quá trình back-end sử dụng một hoặc nhiều giao thức:

1
  • FastCGI là một loại CGI mà là dài trực tiếp, mà sẽ luôn luôn được chạy.
  • Với FastCGI, sẽ mất ít thời gian hơn.
  • Do nhiều quy trình, FastCGI sẽ tốn nhiều bộ nhớ hơn CGI.

In Detail Diff between FastCGI vs CGI

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