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

Comment combiner Flask avec Apache

(*-*)浩
Libérer: 2019-10-29 11:18:38
original
3566 Les gens l'ont consulté

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>
Copier après la connexion

Après modification :

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Copier après la connexion

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

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Copier après la connexion

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
Copier après la connexion

(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.
Copier après la connexion
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>
Copier après la connexion

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
Copier après la connexion

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

WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
Copier après la connexion

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>
Copier après la connexion

À 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") #项目路径
Copier après la connexion

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()
Copier après la connexion

À 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
Copier après la connexion

Démarrez Apache :

httpd -k start
Copier après la connexion

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
Copier après la connexion

Redémarrez le service Apache :

httpd -k restart
Copier après la connexion

À 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal