- Een server met SSH-toegang
- Nginx-webserver draait op de server (installatie gedekt)
- Python
- Je bent een sudo-gebruiker.
De server instellen
Laten we nu beginnen met het instellen van de serveromgeving die we zullen gebruiken om onze server te hosten. Deze tutorial gebruikt de Ubuntu-server. Begin met het bijwerken van de repositories en het installeren van Python3 en Pip.
sudo apt-get updatesudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y
Vervolgens moeten we een map maken om het project op te slaan.
sudo mkdir /var/www/applicationcd /var/www/toepassing
Directory-eigendom en machtigingen wijzigen:
sudo chown -R www-data:www-data /var/www/application/Installeer vervolgens de pakketten met apt (flask en Gunicorn)
sudo apt-get install python3-flask python3-gunicornLaten we nu verder gaan met het initialiseren van een kolftoepassing. Begin met het maken van de hoofd.py-houdt de applicatie-en wsgi.py, waarmee de toepassing wordt uitgevoerd.
sudo touch hoofd.py wsgi.pyBewerk de belangrijkste.py-bestand en stel uw Flask-toepassing en alle routes in. Aangezien deze tutorial geen Flask-gids is, zullen we een basisroute en een hallo wereldbericht opzetten.
uit kolf import Flaskapp = Kolf(__naam__)
@app.route("/")
zeker thuis():
terugkeren "
Nginx & Gunicorn
"Bewerk de wsgi.py-bestand en voeg de code toe om de app te importeren en voer het uit als:
van de hoofdimport-appif __name__ == "__main__":
app.uitvoeren (debug = True)
Test ten slotte of het actief is door flask aan te roepen als:
$ kolf run* Omgeving: productie
WAARSCHUWING: dit is een ontwikkelingsserver. Gebruik het niet in een productie-implementatie.
Gebruik in plaats daarvan een productie-WSGI-server.
* Debug-modus: uit
* Draait op http://127.0.0.1:5000/ (Druk op CTRL+C om te stoppen)
Probeer de applicatie te openen op http://localhost:5000.
Gunicorn instellen
Zodra onze applicatie succesvol draait, kunnen we Gunicorn gebruiken om de applicatie te testen met behulp van de opdrachten:
$ sudo gunicorn --workers 5 wsgi:app[2021-03-19 09:19:34 +0000] [14047] [INFO] Gunicorn starten 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Luisteren op: http://127.0.0.1:8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Gebruiker: sync
[2021-03-19 09:19:34 +0000] [14049] [INFO] Opstartwerker met pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Opstartwerker met pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Opstartwerker met pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Opstartwerker met pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Opstartwerker met pid: 14053
De bovenstaande opdrachten voeren de kolftoepassing uit met Gunicorn met het opgegeven aantal werkers. We noemen dan het bestand wsgi:app, wat het bestand en de instantie is van de toepassing die moet worden uitgevoerd.
Zodra je de applicatie draait met Gunicorn, druk je op CTRL + C om de server te stoppen en Nginx in te stellen.
Gebruik de onderstaande opdrachten om Nginx te installeren en uit te voeren.
sudo apt-get install nginx -ysudo systemctl start nginx
sudo systemctl nginx inschakelen
De volgende stap is om de Nginx-configuratie in de sites-enabled directory te bewerken en het serverblok toe te voegen. Overweeg de volgende configuratie:. Wijzig de applicatie in de naam van uw project.
sudo nano /etc/nginx/sites-available/application.confserver
luister 80;
servernaam applicatie;
access_log /var/log/nginx/application.toegang.logboek;
error_log /var/log/nginx/appliation.fout.logboek;
plaats /
inclusief proxy_params;
proxy_pass http://unix:/var/www/application/application.sok;
Ga verder met het maken van een link naar de site-enabled directory om de website in te schakelen.
sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/Start nu de Nginx-service opnieuw als:
sudo systemctl herstart nginxVervolgens moeten we een systemd-eenheidsbestand maken om de applicatie te bedienen.
sudo nano /etc/systemd/system/application.onderhoud[Eenheid]
Beschrijving=toepassing.service - Een Flask-toepassing die wordt uitgevoerd met Gunicorn.
Na=netwerk.doelwit
[Onderhoud]
Gebruiker=www-gegevens
Groep=www-gegevens
WorkingDirectory=/var/www/applicatie/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.sok wsgi:app
[Installeren]
WantedBy=meerdere gebruikers.doelwit
Sla ten slotte het eenheidsbestand op, schakel vervolgens de daemon in en laad deze opnieuw.
sudo systemctl herstart applicatie.onderhoudsudo systemctl daemon-reload
Nu hebt u toegang tot de applicatie met behulp van het IP-adres of het adres dat is opgegeven in het nginx-configuratiebestand. Mogelijk moet u het toevoegen aan het bestand van de host.
curl http://applicatieHTTP/1.1 200 OK
Server: Werkzeug/0.16.1 Python/3.8.5)
Datum: vr 19 mrt 2021 10:00:39 GMT
Inhoudstype: tekst/html
Inhoud-Lengte: 25
Laatst gewijzigd: vr 19 mrt 2021 09:22:47 GMT
Conclusie
Deze tutorial ging over het opzetten van een Python Flask-applicatie en het serveren via Nginx met Gunicorn. Bekijk de afzonderlijke documentatie voor meer informatie over de services die in deze zelfstudie worden besproken.