Nginx

Kuinka käyttää Nginxiä pullon kanssa.

Kuinka käyttää Nginxiä pullon kanssa.
Python on hieno, helposti opittava ja tehokas ohjelmointikieli, ja Djangon ja Flaskin kaltaisilla kehyksillä voimme käyttää sitä luomaan täysimittaisia ​​verkkosovelluksia. Kun olemme luoneet verkkosovelluksen kirjastoilla ja kehyksillä, kuten Flask, meidän on isännöitävä sitä palvelimelle ja paljastettava se yleisölle. Tässä opetusohjelmassa käsitellään verkkosovelluksen isännöintiä palvelimelle, jossa Nginx toimii Gunicornin avulla. Ennen kuin aloitamme pullon ja Gunicornin käytön, varmista, että täytät seuraavat vaatimukset:

Palvelimen määrittäminen

Aloitetaan nyt asettaa palvelinympäristö, jota käytämme palvelimemme isännöimiseen. Tämä opetusohjelma käyttää Ubuntu-palvelinta. Aloita päivittämällä arkistot ja asentamalla Python3 ja Pip.

sudo apt-get -päivitys
sudo apt-get päivitys -y
sudo apt-get install python3 python3-pip -y

Seuraavaksi meidän on luotava hakemisto projektin tallentamiseksi.

sudo mkdir / var / www / sovellus
cd / var / www / application

Hakemiston omistajuuden ja käyttöoikeuksien muuttaminen:

sudo chown -R www-data: www-data / var / www / sovellus /

Asenna seuraavaksi paketit apt: lla (pullo ja Gunicorn)

sudo apt-get install python3-pullo python3-gunicorn

Aloitetaan nyt pullosovelluksen alustaminen. Aloita luomalla pää.py-pitää sovelluksen ja wsgi: n.py, joka saa sovelluksen toimimaan.

sudo touch tärkein.py wsgi.py

Muokkaa pääkohtaa.py-tiedosto ja määritä Flask-sovelluksesi ja kaikki reitit. Koska tämä opetusohjelma ei ole pullo-opas, asetamme perusreitin ja hello world -viestin.

pullosta tuontipullo
app = pullo (__ nimi__)
@sovellus.reitti("/")
def koti ():
paluu "

Nginx & Gunicorn

"

Muokkaa wsgi: tä.py-tiedosto ja lisää koodi tuoda sovellus ja suorita nimellä:

päätuontisovelluksesta
jos __nimi__ == "__main__":
sovellus.suorittaa (debug = True)

Testaa lopuksi, onko se käynnissä, kutsumalla pulloa seuraavasti:

$ pullo suoritetaan
* Ympäristö: tuotanto
VAROITUS: Tämä on kehityspalvelin. Älä käytä sitä tuotannossa.
Käytä sen sijaan tuotanto-WSGI-palvelinta.
* Virheenkorjaustila: pois päältä
* Käynnissä osoitteessa http: // 127.0.0.1: 5000 / (Lopeta painamalla CTRL + C)

Yritä käyttää sovellusta osoitteessa http: // localhost: 5000.

Gunicornin asettaminen

Kun sovelluksemme on onnistuneesti käynnissä, voimme testata sovellusta Gunicornin avulla komennoilla:

$ sudo gunicorn - työntekijät 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Käynnistetään ase 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Kuuntelu: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Työntekijän käyttö: synkronointi
[2021-03-19 09:19:34 +0000] [14049] [INFO] Käynnistystyöntekijä pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Käynnistystyöntekijä pidillä: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Käynnistystyöntekijä pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Käynnistystyöntekijä, jolla on pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Käynnistystyöntekijä, jolla on pid: 14053

Yllä olevat komennot ajaa pullosovelluksen käyttäen Gunicornia käyttämällä määritettyä työntekijämäärää. Sitten kutsumme tiedoston wsgi: app, joka on suoritettavan sovelluksen tiedosto ja esiintymä.

Kun sovellus on käynnissä Gunicornin avulla, pysäytä palvelin ja asenna Nginx painamalla CTRL + C.

Asenna ja suorita Nginx alla olevien komentojen avulla.

sudo apt-get asenna nginx -y
sudo systemctl Käynnistä nginx
sudo systemctl ota nginx käyttöön

Seuraava vaihe on muokata Nginx-määritystä sivustoja käyttävässä hakemistossa ja lisätä palvelinlohko. Harkitse seuraavaa kokoonpanoa. Muuta sovellus projektisi nimeksi.

sudo nano / etc / nginx / sites-available / application.konf
palvelin
kuunnella 80;
palvelimen_nimi -sovellus;
access_log / var / log / nginx / sovellus.pääsy.Hirsi;
error_log / var / log / nginx / appliation.virhe.Hirsi;
sijainti /
sisältävät välityspalvelinparametrit;
proxy_pass http: // unix: / var / www / application / application.sukka;

Jatka luomalla linkki sivustoa käyttävään hakemistoon, jotta verkkosivusto otetaan käyttöön.

sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sivustot käytössä /

Käynnistä Nginx-palvelu uudelleen seuraavasti:

sudo systemctl käynnistä nginx uudelleen

Seuraavaksi meidän on luotava systemd-yksikkötiedosto sovellusta palvelemaan.

sudo nano / etc / systemd / system / application.palvelu
[Yksikkö]
Kuvaus = sovellus.palvelu - Gunicornin kanssa suoritettava pullo-sovellus.
Jälkeen = verkko.kohde
[Palvelu]
Käyttäjä = www-data
Ryhmä = www-data
WorkingDirectory = / var / www / sovellus /
ExecStart = / usr / bin / gunicorn - työntekijät 3 --bind unix: / var / www / application.sukka wsgi: app
[Asentaa]
WantedBy = monikäyttäjä.kohde

Tallenna lopuksi yksikkötiedosto, ota sitten käyttöön ja lataa daemon uudelleen.

sudo systemctl käynnistä sovellus uudelleen.palvelu
sudo systemctl daemon-reload

Nyt voit käyttää sovellusta käyttämällä IP-osoitetta tai nginx-määritystiedostossa määritettyä osoitetta. Sinun on ehkä lisättävä se isännän tiedostoon.

käpristää http: // sovellus
HTTP / 1.1200 OK
Palvelin: Werkzeug / 0.16.1 Python / 3.8.5)
Päivämäärä: pe, 19. maaliskuuta 2021 10:00:39 GMT
Sisältötyyppi: teksti / html
Sisällön pituus: 25
Muokattu viimeksi: 19. maaliskuuta 2021 09:22:47 GMT

Johtopäätös

Tässä opetusohjelmassa kerrotaan, miten Python Flask -sovellus asennetaan ja sitä käytetään Nginxissä Gunicornin avulla. Harkitse yksittäisiä asiakirjoja saadaksesi lisätietoja tässä opetusohjelmassa käsitellyistä palveluista.

Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 parasta arcade-peliä Linuxille
Nykyään tietokoneet ovat vakavia koneita, joita käytetään pelaamiseen. Jos et pääse uusiin korkeisiin pisteisiin, tiedät mitä tarkoitan. Tässä viestis...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...