Flask - Triển khai

Máy chủ hiển thị bên ngoài

Ứng dụng Flask trên máy chủ phát triển chỉ có thể truy cập được trên máy tính đã thiết lập môi trường phát triển. Đây là một hành vi mặc định, vì trong chế độ gỡ lỗi, người dùng có thể thực thi mã tùy ý trên máy tính.

Nếu debug bị tắt, máy chủ phát triển trên máy tính cục bộ có thể được cung cấp cho người dùng trên mạng bằng cách đặt tên máy chủ là ‘0.0.0.0’.

app.run(host = ’0.0.0.0’)

Qua đó, hệ điều hành của bạn lắng nghe tất cả các IP công cộng.

Triển khai

Để chuyển từ môi trường phát triển sang môi trường sản xuất chính thức, một ứng dụng cần được triển khai trên máy chủ web thực. Tùy thuộc vào những gì bạn có, có sẵn các tùy chọn khác nhau để triển khai ứng dụng web Flask.

Đối với ứng dụng nhỏ, bạn có thể xem xét triển khai nó trên bất kỳ nền tảng được lưu trữ nào sau đây, tất cả đều cung cấp gói miễn phí cho ứng dụng nhỏ.

  • Heroku
  • dotcloud
  • webfaction

Ứng dụng Flask có thể được triển khai trên các nền tảng đám mây này. Ngoài ra, có thể triển khai ứng dụng Flask trên nền tảng đám mây của Google. Dịch vụ Localtunnel cho phép bạn chia sẻ ứng dụng của mình trên localhost mà không làm xáo trộn DNS và cài đặt tường lửa.

Nếu bạn có xu hướng sử dụng một máy chủ web chuyên dụng thay cho các nền tảng được chia sẻ ở trên, bạn có thể khám phá các tùy chọn sau.

mod_wsgi

mod_wsgi là một mô-đun Apache cung cấp giao diện tuân thủ WSGI để lưu trữ các ứng dụng web dựa trên Python trên máy chủ Apache.

Cài đặt mod_wsgi

Để cài đặt bản phát hành chính thức trực tiếp từ PyPi, bạn có thể chạy -

pip install mod_wsgi

Để xác minh rằng cài đặt thành công, hãy chạy tập lệnh mod_wsgi-express bằng lệnh start-server -

mod_wsgi-express start-server

Thao tác này sẽ khởi động Apache / mod_wsgi trên cổng 8000. Sau đó, bạn có thể xác minh rằng cài đặt đã hoạt động bằng cách trỏ trình duyệt của bạn vào -

http://localhost:8000/

Tạo tệp .wsgi

Nên có một yourapplication.wsgitập tin. Tệp này chứa mãmod_wsgi,thực thi khi khởi động để lấy đối tượng ứng dụng. Đối với hầu hết các ứng dụng, tệp sau đây phải đủ:

from yourapplication import app as application

Đảm bảo rằng yourapplication và tất cả các thư viện đang sử dụng đều nằm trên đường dẫn tải python.

Cấu hình Apache

Bạn cần nói mod_wsgi, vị trí của ứng dụng của bạn.

<VirtualHost *>
   ServerName example.com
   WSGIScriptAlias / C:\yourdir\yourapp.wsgi

   <Directory C:\yourdir>
      Order deny,allow
      Allow from all
   </Directory>

</VirtualHost>

Bộ chứa WSGI độc lập

Có nhiều máy chủ phổ biến được viết bằng Python có chứa các ứng dụng WSGI và phục vụ HTTP.

  • Gunicorn
  • Tornado
  • Gevent
  • Web xoắn