Introduction détaillée au déploiement en Python

零下一度
Libérer: 2017-07-23 10:09:58
original
1569 Les gens l'ont consulté

J'apprends Flask depuis un moment, mais je ne l'ai jamais déployé, alors je réfléchissais à la façon de le déployer. J'y ai réfléchi, commençons par lancer le service, alors j'ai pensé à le faire en premier. , et j'ai choisi ici. C'est Flask+uwsgi+Nginx+Ubuntu. L'option Python est 2.7.2. C'est celle qui est fournie avec le système Ubuntu. Cela semble simple à apprendre sans avoir à passer par le logiciel. connexion. Actuellement, mon propre flacon est écrit en python3, et je vais y passer lentement, comprenons d'abord cela, puis il sera très facile à optimiser. En fait, je ne connais pas grand-chose à de nombreux principes. Commençons par configurer cela et comprenons lentement la logique à l'intérieur.

Nginx

Nginx est un serveur Web et un serveur proxy inverse efficace qui peut être utilisé comme équilibrage de charge (lorsque n utilisateurs accèdent au serveur, il peut décharger et partager la charge de la pression du serveur), par rapport à Apache, Nginx prend en charge une concurrence élevée et peut prendre en charge des millions de connexions TCP et des centaines de milliers de connexions simultanées. Il est simple à déployer, consomme moins de mémoire et a un faible coût. de nombreux modules comme Apache. Nginx prend en charge le protocole uwsgi de uWSGI, nous pouvons donc combiner Nginx avec uWSGI, et Nginx transmet le contenu dynamique à uWSGI pour traitement via uwsgi_pass.

La documentation officielle est ici

Le meilleur tutoriel Nginx est ici

uwsgi

uWSGI est un serveur Web qui implémente le protocole WSGI , uwsgi, http et autres protocoles. La fonction de HttpUwsgiModule dans Nginx est d'échanger avec le serveur uWSGI.
Faites attention à la distinction entre les trois concepts WSGI / uwsgi / uWSGI.
  • Les étudiants qui ont lu la section précédente sauront que WSGI est un protocole de communication.
  • uwsgi est un protocole de ligne plutôt qu'un protocole de communication. Il est souvent utilisé pour la communication de données entre le serveur uWSGI et d'autres serveurs réseau.
  • Et uWSGI est un serveur Web qui implémente deux protocoles, uwsgi et WSGI.
Le protocole uwsgi est le propre protocole d'un serveur uWSGI. Il est utilisé pour définir le type d'informations à transmettre. Les 4 premiers octets de chaque paquet uwsgi sont une description du type d'informations. à transmettre. Par rapport à WSGI, ce sont deux choses différentes.
Préparation, tout d'abord, installons les packages dont nous avons besoin Tout d'abord, c'est mon système nouvellement installé, donc il n'y a pas de pip, je vais donc d'abord installer pip
sudo apt-get install python-pip
Copier après la connexion
Utilisez la commande suivante pour installer flask

pip install flask
Copier après la connexion
Après l'installation, nous pouvons le tester,

import flask

Aucune erreur n'est signalée, ce qui prouve que notre flask est installé avec succès. La prochaine chose que nous devons faire est d’installer ngnix et uwsgi.

sudo apt-get install nginx
Copier après la connexion
Après l'installation, nous pouvons le démarrer d'abord, nginx start Démarrage direct en ligne de commande, simple et grossier

Ceci façon Notre nginx a démarré avec succès. Ensuite, nous utilisons pip pour installer uwsgi

Après l'avoir installé, commençons à travailler

Je le crée d'abord sous hellowflak Le package python d'une application,

.

#app/__init__.pyfrom flask import Flask
app = Flask(__name__)from app import view
Copier après la connexion
Ensuite, nous créons view.py

from app import app
@app.route('/')def index():return 'hellow'
Copier après la connexion
Ensuite, nous allons dans l'application Créer hello.py

from app import appif __name__ == "__main__":
    app.run()
Copier après la connexion
dans le répertoire de même niveau, puis nous pouvons utiliser Python pour déboguer notre programme localement,

Ensuite, nous pouvons jeter un œil dans le navigateur, entrez l'adresse et obtenez ceci. De ce point de vue, il n'y a aucun problème avec notre programme de flacons.

Ensuite, ce que nous devons faire est de laisser nginx prendre en charge le service Web.

Ce que j'ai fait ici, c'est simplement et grossièrement supprimer le fichier de configuration nginx

$ sudo rm /etc/nginx/sites-enabled/default
Copier après la connexion
Ensuite, j'ai créé un fichier de configuration sous hellowflask

server {
    listen      8081;
    server_name 127.0.0.1;
    charset     utf-8;
    client_max_body_size 75M;

    location / { try_files $uri @app; }
    location @app {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9000;
    }
}
Copier après la connexion
Une brève explication : server_name peut être un nom de domaine ou une adresse IP. uwsgi_pass indique la méthode de communication entre Nginx et uwsgi. Ce que j'ai choisi ici est le numéro de port spécifié.

Ensuite, connectons en douceur notre configuration à nginx.

<code class="hljs groovy">sudo ln -s <span class="hljs-regexp"><span class="hljs-regexp">/home/liwanlei/Desktop/hellowflask/<span class="hljs-regexp">helloflask_nginx.conf /etc<span class="hljs-regexp">/nginx/conf.d/<br>这样我们再去启动我们的nginx,</span></span></span></span></code>
Copier après la connexion
sudo /etc/init.d/nginx restart
Copier après la connexion
Ce qu'il y a ici n'est pas un accueil, mais une erreur 502, car notre fichier uwsgi actuel n'a pas encore été configuré et nous n'avons pas démarré uwsgi, alors allons-y ensuite, je veux juste sortir cet uwsgi. L'exemple suivant est ma configuration.

[uwsgi]    
    base = /home/liwanlei/Desktop/hellowflask
    app = hello#module = %(app)pidfile = /var/run/uwsgi.pid
    master = true
    wsgi-file = /home/liwanlei/Desktop/hellowflask/hello.py
    pythonpath = /usr/bin/python
    chdir = /home/liwanlei/Desktop/hellowflask
    socket = 127.0.0.1:9000callable = app
    logto = %n.log
    plugins = python
    processes = 8master = true
Copier après la connexion
À ce stade, notre uwsgi a été configuré, alors commençons-le,

sudo /usr/bin/uwsgi --ini/home/liwanlei/Desktop/hellowflask/helloflask_uwsgi.ini
Copier après la connexion

我们去重新启动我们的nginx,

<code class="hljs bash">sudo nginx <span class="hljs-_">reload<br>平滑重启可以用用,重新加载配置文件,用新的工作进程代替旧的工作进程。<br></span></code>
Copier après la connexion
sudo nginx -s reload
Copier après la connexion
<code class="hljs bash"><span class="hljs-_"><br>启动后,我这里修改了地址,这里就可以直接访问了,那么我们的部署这样就算可以了,简单的。<br><img src="https://img.php.cn/upload/article/000/000/001/25f4d9be3a729ae5fc17c2fefb915c9c-3.jpg" alt=""></span></code>
Copier après la connexion
 <br>
Copier après la connexion

完工之后,感觉还是很简单的 有问题那么就去看log,只要log配置得当,那么排除错误是很快的。

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!