Maison  >  Article  >  Opération et maintenance  >  Comment combiner Flask avec Apache

Comment combiner Flask avec Apache

(*-*)浩
(*-*)浩original
2019-10-29 11:17:573529parcourir

Le serveur Web de développement fourni avec Flask fonctionne très mal, répond lentement et exécute un proxy inverse directement via nginx, ne parvenant souvent pas à répondre aux demandes. Il existe deux serveurs qui peuvent être utilisés dans un environnement de production, ont de bonnes performances et prennent en charge les programmes Flask, à savoir Gunicorn et uWSGI, mais ces deux modules ne prennent pas en charge Windows.

Comment combiner Flask avec Apache

Nous devons donc utiliser le module mod_wsgi pour permettre à flask d'être déployé sur Apache. Le module mod_wsgi est un module Apache FastCGI écrit en python. (Apprentissage recommandé : utilisation d'Apache)

Après le téléchargement, décompressez-le pour obtenir Apache24, ouvrez-le dans le fichier de configuration et ouvrez-le avec le texte. J'utilise Atom pour l'ouvrir. ici.

Expliquons maintenant ce que nous devons modifier :

1. ServerRoot "c:/Apache24" : Remplacez-le par votre propre adresse de répertoire

2. Écoutez 8080 : Port. Non. Configuration, certains utilisateurs peuvent constater que leur port 80 est occupé, qui peut être occupé par IIS ou SQL Server. Nous pouvons modifier ce numéro de port pour faciliter les tests

Modifier l'autorisation du répertoire

Original :

<Directory />
AllowOverride none
Require all denied
</Directory>

Après modification :

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

4. Modifiez le chemin racine du document vers votre propre chemin de fichier

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">

5. Configuration du module Mod (points clés)

(1) Installez d'abord le fichier mod.whl téléchargé :

pip install

(2) Après une installation réussie, exécutez la commande suivante :

mod_wsgi-express module-config

(3) Une fois la commande ci-dessus exécutée avec succès, nous pouvons obtenir trois informations :

(4) Utilisez ensuite ces trois informations pour remplacer le fichier .so et ajoutez-le au fichier de configuration Apache Medium :

Comment combiner Flask avec Apache

6. Site de configuration (point clé) :

# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
Comment combiner Flask avec ApacheParce que je suis une personne qui ne sait pas configurer Apache, je d'abord J'ai vu la configuration dans le lien de référence, donc je peux rechercher dans le texte intégral et trouver cette phrase. Je peux être sûr de mettre ceci

Copiez le paragraphe suivant au bas du fichier de conf et remplacez le chemin par votre propre chemin

<VirtualHost *:8080 >
ServerAdmin example@xx.com
DocumentRoot E:\Environment\Apache\Apache24\text_web
<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
</VirtualHost>

Les instructions de configuration du site ci-dessus :

(1) Chemin du projet (Il n'est pas nécessaire qu'il soit placé dans le répertoire apache) :

DocumentRoot E:\Environment\Apache\Apache24\text_web

(2)fichier de démarrage du module wsgi (point clé) :

WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi

Remarque : le "/" ici est obligatoire et représente le préfixe de l'url. Il peut être modifié ultérieurement selon les besoins.

(3) Autorisations du chemin du projet : définies pour autoriser tous les

<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>

À ce stade, notre fichier httpd.conf a été configuré.

2. Saisissez la configuration du projet flask :


Répertoire du projet :

Comment combiner Flask avec Apache1 , description du fichier test.wsgi :

import sys
sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #项目路径

from test import app #Introduisez le nom de notre projet flask dans

application = app #applcation ne doit pas être remplacé par autre chose, car wsgin analyse cela fichier, reconnaissez uniquement l'application (lien de référence)

2. Le fichier principal de flask

from flask import Flask
 
app = Flask(__name__)
 
@app.route(&#39;/hello&#39;)
def hello_world():
    return &#39;Hello World!&#39;
 
if __name__ == &#39;__main__&#39;:
    app.run()

À ce stade, la configuration de notre projet est pratiquement terminée. Ce qui nécessite une attention particulière ici, c'est le fichier wsgi. Présentation du projet.

3. Démarrez ou installez Apache

Démarrez cmd en mode administrateur et entrez le chemin du fichier bin d'Apache24 :

Installez Apache pour servir le système. :

httpd -k install

Démarrez Apache :

httpd -k start

J'ai découvert que certains ordinateurs peuvent l'exécuter directement en ouvrant httpd.exe sans installer httpd dans le service système.

Autres commandes Apache pouvant être utilisées :

Arrêtez le service Apache :

httpd -k stop

Redémarrez le service Apache :

httpd -k restart

À ce stade, notre flacon le projet passe wsgi Le module est construit après la construction du service Apache. Ouvrez localhost:8080/hello et voyez si helloworld apparaît. Si vous constatez que le projet n'est toujours pas configuré correctement, veuillez prêter attention au journal de sortie d'erreur d'Apache. Le journal de sortie des erreurs se trouve dans Apache24logserror.lo

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn