2012-09-04 39 views

Trả lời

15

Về cơ bản, không. Máy chủ phát triển tích hợp không an toàn để triển khai trong môi trường sản xuất.

Máy xây dựng trong phát triển máy chủ chỉ dành cho điều đó. Để sử dụng trong sản xuất, bạn nên làm theo một trong các bước chi tiết here.

Chúng bao gồm các máy chủ khác nhau mà thực hiện các đặc điểm kỹ thuật WSGI, chẳng hạn như Apache/mod_wsgi hoặc một trong những độc wsgi máy chủ http://flask.pocoo.org/docs/deploying/wsgi-standalone/

Ngoài ra còn có uWSGIFastCGI tùy chọn có sẵn

+2

Có thể nhận bản cập nhật 2014 cho câu trả lời này không?"Về cơ bản không" là mơ hồ như + ensnare hỏi hai câu hỏi. –

+0

câu trả lời được cập nhật để xóa sự mơ hồ. phần còn lại của câu trả lời vẫn có vẻ hoàn toàn hợp lệ. liên kết vẫn trỏ đến tài liệu bình mới nhất. –

41

Không. Máy chủ được nhóm là máy chủ phát triển. Nó không được thiết kế với môi trường sản xuất trong tâm trí.

  • Nó sẽ không xử lý nhiều yêu cầu cùng một lúc theo mặc định.
  • Nếu bạn thoát khỏi chế độ gỡ lỗi và lỗi xuất hiện, nó sẽ mở ra một trình bao cho phép mã tùy ý được thực thi trên máy chủ của bạn (xem os.system('rm -rf /')).
  • Máy chủ phát triển không mở rộng tốt.

Flask sử dụng máy chủ phát triển Werkzeug, và các tài liệu nói điều tương tự:

Các máy chủ phát triển không được thiết kế để được sử dụng trên hệ thống sản xuất. Nó được thiết kế đặc biệt cho mục đích phát triển và thực hiện kém dưới tải trọng cao. Đối với các thiết lập triển khai, hãy xem trang Application Deployment.

Cách tiếp cận được khuyến nghị là use a production WSGI server để chạy ứng dụng Flask của bạn. Có cả một phần dành riêng cho triển khai trong các tài liệu: Deployment Options


Nếu bạn đang phục vụ bất kỳ tài sản tĩnh như hình ảnh hoặc video, cần ở mức độ thấp bộ nhớ đệm, hoặc có nhu cầu đồng thời cao hơn, nó được đề nghị sử dụng một máy chủ web như nginx và xử lý tất cả các yêu cầu của bạn.

Ở dạng ASCII crappy:

   +----------+ 
       | Client 2 | 
       +----------+ 
         | 
         V 
+----------+  +-------+  +----------+ 
| Client 1 |----->| nginx |<-----| Client 3 | 
+----------+  +-------+  +----------+ 
        ^
         | 
         V 
      /--------------------\ 
      | useful nginx stuff | 
      | like asset serving | 
      | and rate limiting | 
      \--------------------/ 
         | 
         V 
       +-------------+ 
       | WSGI server | 
       +-------------+ 

Để thực sự chạy quá trình máy chủ WSGI, bạn có thể sử dụng Supervisor. Nó sẽ tự động khởi động lại máy chủ nếu nó không thành công vì lý do nào đó, giữ nhật ký và chạy như một daemon để dịch vụ của bạn khởi động khi máy chủ khởi động.

+1

Tôi sử dụng 'supervisor' +' gunicorn' + 'nginx'. Nó thực sự dễ dàng để thiết lập và duy trì. –

+0

"Nó sẽ không xử lý nhiều yêu cầu cùng một lúc" - không đúng, xem các đối số được xử lý và chuỗi: http://werkzeug.pocoo.org/docs/0.11/serving/ – HaveAGuess

+0

"nếu lỗi xuất hiện, nó sẽ mở ra lên một trình bao cho phép mã tùy ý được thực thi trên máy chủ của bạn "- không phải là chế độ debug = True? – HaveAGuess

0

Trong khi trọng lượng nhẹ và dễ sử dụng, máy chủ tích hợp của Flask không phù hợp cho sản xuất vì nó không hoạt động tốt và theo mặc định chỉ phục vụ một yêu cầu tại một thời điểm. http://flask.pocoo.org/docs/0.12/deploying/

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