กระติกน้ำ - การปรับใช้

เซิร์ฟเวอร์ที่มองเห็นได้จากภายนอก

แอปพลิเคชัน Flask บนเซิร์ฟเวอร์การพัฒนาสามารถเข้าถึงได้บนคอมพิวเตอร์ที่ตั้งค่าสภาพแวดล้อมการพัฒนาเท่านั้น นี่เป็นลักษณะการทำงานเริ่มต้นเนื่องจากในโหมดการดีบักผู้ใช้สามารถเรียกใช้รหัสตามอำเภอใจบนคอมพิวเตอร์ได้

ถ้า debug ถูกปิดใช้งานเซิร์ฟเวอร์การพัฒนาบนคอมพิวเตอร์ในระบบสามารถให้บริการแก่ผู้ใช้บนเครือข่ายได้โดยตั้งชื่อโฮสต์เป็น ‘0.0.0.0’.

app.run(host = ’0.0.0.0’)

ดังนั้นระบบปฏิบัติการของคุณจะรับฟัง IP สาธารณะทั้งหมด

การปรับใช้

ในการเปลี่ยนจากสภาพแวดล้อมการพัฒนาเป็นสภาพแวดล้อมการใช้งานจริงที่สมบูรณ์แอปพลิเคชันจำเป็นต้องปรับใช้บนเว็บเซิร์ฟเวอร์จริง มีตัวเลือกต่าง ๆ สำหรับปรับใช้เว็บแอปพลิเคชัน Flask ทั้งนี้ขึ้นอยู่กับสิ่งที่คุณมี

สำหรับแอปพลิเคชันขนาดเล็กคุณสามารถพิจารณาปรับใช้บนแพลตฟอร์มที่โฮสต์ต่อไปนี้ซึ่งทั้งหมดนี้มีแผนบริการฟรีสำหรับแอปพลิเคชันขนาดเล็ก

  • Heroku
  • dotcloud
  • webfaction

แอปพลิเคชัน Flask สามารถใช้งานได้บนแพลตฟอร์มคลาวด์เหล่านี้ นอกจากนี้ยังสามารถปรับใช้แอพ Flask บนแพลตฟอร์มคลาวด์ของ Google บริการ Localtunnel ช่วยให้คุณสามารถแบ่งปันแอปพลิเคชันของคุณบน localhost โดยไม่ต้องยุ่งกับการตั้งค่า DNS และไฟร์วอลล์

หากคุณมีแนวโน้มที่จะใช้เว็บเซิร์ฟเวอร์เฉพาะแทนแพลตฟอร์มที่ใช้ร่วมกันดังกล่าวข้างต้นคุณสามารถสำรวจตัวเลือกต่อไปนี้ได้

mod_wsgi

mod_wsgi เป็นโมดูล Apache ที่มีอินเทอร์เฟซที่สอดคล้องกับ WSGI สำหรับการโฮสต์เว็บแอปพลิเคชันที่ใช้ Python บนเซิร์ฟเวอร์ Apache

กำลังติดตั้ง mod_wsgi

ในการติดตั้งรุ่นโดยตรงอย่างเป็นทางการจาก PyPi คุณสามารถเรียกใช้ -

pip install mod_wsgi

ในการตรวจสอบว่าการติดตั้งสำเร็จให้รันสคริปต์ mod_wsgi-express ด้วยคำสั่ง start-server -

mod_wsgi-express start-server

สิ่งนี้จะเริ่มต้น Apache / mod_wsgi บนพอร์ต 8000 จากนั้นคุณสามารถตรวจสอบได้ว่าการติดตั้งทำงานได้โดยชี้เบราว์เซอร์ของคุณที่ -

http://localhost:8000/

การสร้างไฟล์. wsgi

ควรมี yourapplication.wsgiไฟล์. ไฟล์นี้มีรหัสmod_wsgi,ซึ่งดำเนินการเมื่อเริ่มต้นเพื่อรับวัตถุแอปพลิเคชัน สำหรับแอปพลิเคชันส่วนใหญ่ไฟล์ต่อไปนี้ควรเพียงพอ -

from yourapplication import app as application

ทำให้แน่ใจ yourapplication และไลบรารีทั้งหมดที่ใช้งานอยู่บน python load path

การกำหนดค่า Apache

คุณต้องบอก mod_wsgi, ตำแหน่งของแอปพลิเคชันของคุณ

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

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

</VirtualHost>

คอนเทนเนอร์ WSGI แบบสแตนด์อโลน

มีเซิร์ฟเวอร์ยอดนิยมจำนวนมากที่เขียนด้วย Python ซึ่งมีแอปพลิเคชัน WSGI และให้บริการ HTTP

  • Gunicorn
  • Tornado
  • Gevent
  • เว็บบิด