Flask
Mod_wsgi के साथ अपाचे पर फ्लास्क
खोज…
WSGI अनुप्रयोग आवरण
सिस्टम-व्यापी पायथन इंस्टॉलेशन से अलग प्रत्येक एप्लिकेशन के लिए निर्भरता बनाए रखने के लिए कई फ्लास्क एप्लिकेशन एक वर्चुअन में विकसित किए जाते हैं। सुनिश्चित करें कि mod-wsgi आपके virtualenv में स्थापित है:
pip install mod-wsgi
फिर अपने फ्लास्क एप्लिकेशन के लिए एक wsgi आवरण बनाएं। आमतौर पर इसे आपके एप्लिकेशन की रूट डायरेक्टरी में रखा जाता है।
मेरी-application.wsgi
activate_this = '/path/to/my-application/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/path/to/my-application')
from app import app as application
यह आवरण अपाचे से चलने पर आभासी वातावरण और इसके सभी स्थापित मॉड्यूल और निर्भरता को सक्रिय करता है, और यह सुनिश्चित करता है कि खोज पथ में एप्लिकेशन पथ पहले है। सम्मेलन द्वारा, WSGI एप्लिकेशन ऑब्जेक्ट्स को application
कहा जाता application
।
WSGI के लिए अपाचे साइट-सक्षम कॉन्फ़िगरेशन
बिलिन वर्कर्ज़ग सर्वर पर अपाचे का उपयोग करने का लाभ यह है कि अपाचे बहु-थ्रेडेड है, जिसका अर्थ है कि आवेदन के कई कनेक्शन एक साथ किए जा सकते हैं। यह उन अनुप्रयोगों में विशेष रूप से उपयोगी है जो फ्रंट-एंड पर XmlHttpRequest (AJAX) का उपयोग करते हैं।
/etc/apache2/sites-available/050-my-application.conf (या डिफ़ॉल्ट Apache कॉन्फ़िगरेशन यदि किसी साझा वेबसर्वर पर होस्ट नहीं किया गया है)
<VirtualHost *:80>
ServerName my-application.org
ServerAdmin [email protected]
# Must be set, but can be anything unless you want to serve static files
DocumentRoot /var/www/html
# Logs for your application will go to the directory as specified:
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# WSGI applications run as a daemon process, and need a specified user, group
# and an allocated number of thread workers. This will determine the number
# of simultaneous connections available.
WSGIDaemonProcess my-application user=username group=username threads=12
# The WSGIScriptAlias should redirect / to your application wrapper:
WSGIScriptAlias / /path/to/my-application/my-application.wsgi
# and set up Directory access permissions for the application:
<Directory /path/to/my-application>
WSGIProcessGroup my-application
WSGIApplicationGroup %{GLOBAL}
AllowOverride none
Require all granted
</Directory>
</VirtualHost>