Alkalmazás django alkalmazások apache és mod_wsgi az ubuntu

A kiszolgálók elhelyezése megbízható európai adatközpontokba. Nyissa meg a felhőalapú VPS / VDS szervert gyors SSD-ken 1 percen belül!

Legjobb tárhely:
- védi az adatokat a nem kívánt hozzáféréstől egy védett európai adatközpontban
- elfogadja a fizetést legalább a bitcoinban.
- elosztja terjesztését

- védelem a DDos támadásoktól
- mentes mentés
- Uptime 99.9999%
- Adatközpont - TIER III
- szolgáltató - TIER I

Támogatjuk az oroszban 24/7/365 Jogi személyekkel és természetes személyekkel dolgozunk. Most szüksége van 24 magra és 72 GB RAM-ra. Kérlek!

Kedvező tarifáink bizonyítják, hogy még nem tudta az olcsó tárhelyet!

Perc: válassza ki a konfigurációt, a fizetést és a CMS-t a VPS készen áll.
Pénzvisszafizetés - 30 nap!

Bankkártyák, e-deviza, Qiwi, Webmoney, PayPal, Novoplat stb.

Kérdezzen a 24/7/365 támogatáshoz

Válaszokat talál az adatbázisunkban, és ismerkedjen meg az ajánlásokkal

A Django egy produktív webes keretrendszer Python alkalmazásainak vagy webhelyeinek fejlesztésére.

A Django egy egyszerű fejlesztői szervert is kínál a helyi kódfelméréshez. Sajnos a termeléshez sokkal biztonságosabb és erősebb webszervert kell keresnie, mivel ez a szerver teljesen helytelen.

Ez az útmutató segít a Django telepítésében és beállításában egy virtuális Python környezetben, és konfigurálhatja az Apache-t, hogy támogassa az alkalmazást és kezelje az ügyfélkéréseket (a mod_wsgi nevű Apache modult használva, amely a Django-val együttműködve a WSGI felületen keresztül működik).

követelmények

A bemutató befejezéséhez először konfigurálni kell az Ubuntu 16.04 kiszolgálót, és létre kell hoznia egy nem root felhasználónak a sudo-hoz való hozzáférést. Részletes információ a kezdeti kiszolgáló konfigurációról és a felhasználók létrehozásáról itt található.

A Django keretrendszer ebben a leírásban a Python virtuális környezetben lesz telepítve, amely lehetővé teszi, hogy az alkalmazáshoz egyedi csomagkészleteket használjon.

Az alkalmazás futtatása után be kell állítania az Apache webszerver és a Django alkalmazás kölcsönhatását. Ehhez használja a mod_wsgi modult, amely a HTTP kéréseket barátságos Django formátumba alakítja a WSGI specifikációnak megfelelően.

Csomagok telepítése az Ubuntu repository-ból

Először telepítenie kell az Ubuntu repository-tól az összes szükséges csomagot: az Apache webszervert, a mod_wsgi modult és a pip (a Python csomagkezelőt).

Frissítse a csomagindexet és telepítse a programokat.

Ha Python 2-t használ, írja be:

sudo apt-get frissítés
sudo apt-get telepítse a python-pip apache2 libapache2-mod-wsgi fájlt

A Python 3-ban egy másik csomag pipát használunk:

sudo apt-get frissítés
sudo apt-get telepítése python3-pip apache2 libapache2-mod-wsgi-py3

A virtuális környezet konfigurálása

A szerver elkészítése után elkezdheti dolgozni a Django alkalmazásban. Először hozzon létre egy virtuális Python környezetet a projekteszközök tárolásához.

Ehhez használja a virtualenv parancsot. A segédprogram telepítéséhez írja be:

Python 2:
sudo pip install virtualenv
Python 3:
sudo pip3 install virtualenv

Most a virtualenv segédprogram telepítve van, és környezetet hozhat létre. Hozzon létre egy olyan könyvtárat, ahol a virtuális környezet megtalálható és megy hozzá:

Ebben a könyvtárban hozzon létre egy virtuális Python környezetet:

Ez a parancs létrehoz egy myprojectenv nevű virtuális környezetet a myproject könyvtárban, és telepít egy helyi Python és pip változatot, amelyet felhasználhat egy elszigetelt fejlesztési környezet létrehozásához a projekthez.

Mielőtt elkezdené telepíteni az alkalmazás függőségét, engedélyeznie kell a virtuális környezetet.

forrás myprojectenv / bin / activate

Ezután a parancssor megváltozik, jelezve, hogy az aktuális környezet a Python virtuális környezet:

Miután engedélyezte a virtuális környezetet, telepítse a Django:

pip install django

Megjegyzés. A Python verziójától függetlenül az aktív virtuális környezet a pip parancsot használja, nem pedig a pip3 parancsot.

Django alkalmazás létrehozása és konfigurálása

A Django virtuális környezetbe telepítésével elkezdheti létrehozni a Django projektfájlokat.

Django projekt létrehozása

Telepítse a Django fájlokat az előzőleg létrehozott könyvtárba. Ez létrehozza a második szintű könyvtárakat, amelyek tárolják a kódot és a szkripteket. Megjegyzés: a parancsnak egy periódus karakterrel kell végződnie.

django-admin.py startproject myproject.

A Django projekt konfigurálása

A kézikönyv a standard SQLite adatbázist használja, így a telepítés nem igényel sok időt.

Megjegyzés. A nagyméretű alkalmazások támogatása érdekében megbízhatóbb DBMS-t kell konfigurálni.

A hangsúly a statikus Django fájlok könyvtárának konfigurálásán fog állni.

A fájl végén adja hozzá a STATIC_ROOT irányelvet, amely arra utasítja a Django keretrendszert, hogy keresse meg a statikus fájlokat.


STATIC_URL = '/ statikus /'
STATIC_ROOT = os.path.join (BASE_DIR, 'static /')

Mentse és zárja be a fájlt.

Ezt követően megnyithatja az eredeti adatbázis sémát a vezérlőszkript segítségével:

/ myproject
./manage.py makemigrations
./manage.py áttérés

Ezután össze kell állítania a statikus tartalmat egy könyvtárba:

A megerősítés után az összes statikus fájl a projektkönyvtár statikus könyvtárába kerül.

Most ki kell nyitnod a Django fejlesztői kiszolgáló portját, 8000-et. Jelen pillanatban az UFW tűzfal bezárja (ha a szervert a jelen kézikönyv szerint konfigurálta).

A fejlesztői szerver feloldásához írja be:

sudo ufw engedélyezze a 8000-et

A projekt tesztelése a Django fejlesztői kiszolgáló futtatásával:

/manage.py runserver 0.0.0.0:8000

Nyissa meg a böngészőt, és keresse fel a 8000-es porton található tartománynevet vagy IP-kiszolgálót:

A képernyőn megjelenik a Django welcome oldal:

Ez működött!
Gratulálok az első Django-oldaladhoz.

A fejlesztői kiszolgáló leállításához nyomja meg a CTRL-C billentyűt.

A virtuális környezet letiltásához írja be:

Apache konfigurálása

Tehát a Django projekt készen áll és elkezdheti az Apache konfigurálását az elülső végén. Az Apache által fogadott összes kliens kapcsolatot a Django által igényelt WSGI formátumba kell konvertálni a mod_wsgi modult használva (amelyet a telepítés után automatikusan engedélyezni kellett).

A WSGI beállításához módosítsa az alapértelmezett virtuális gépet.

sudo nano /etc/apache2/sites-available/000-default.conf

A fájlban található összes irányelv elhagyható. Csak adj néhány új lehetőséget.

Először állítsd be a statikus fájlokat; Ezután az Apache továbbítja a statikus / statikus állományú összes kérelmet a projektkönyvtárban található statikus könyvtárhoz. Ehhez meg kell adnia az Alias-t, és hozzáférést kell biztosítania a kívánt könyvtárhoz.


.
Alias ​​/ statikus / home / 8host / myproject / statikus

Mindenkit megkövetel

Ezután be kell állítania a wsgi.py fájl (a projektkönyvtárak második szintje) hozzáférési jogát, amelyben a projektkód tárolódik. Ehhez használja a Directory részt.


.
Alias ​​/ statikus / home / 8host / myproject / static

Mindenkit megkövetel



Mindenkit megkövetel


Most megyünk a WSGI-t feldolgozó beállításokhoz. A WSGI folyamatok elindításához használja a démon módot; erre a célra a WSGIDaemonProcess irányelvet használják. Ez az irányelv tetszőleges nevet ad a folyamatnak. A kézikönyv a myproject nevet használja.

Ezután meg kell adnia a Python elérési útját, ahol az Apache kiszolgáló megtalálhatja az összes szükséges összetevőt. Mivel a virtuális környezetet a konfiguráció használja, meg kell adnia a virtuális környezet könyvtárának elérési útját, majd a Python elérési utat a Django projekt alapkönyvtárához.

Ezt követően meg kell adnia egy folyamatcsoportot; ennek az értéknek meg kell egyeznie a WSGIDaemonProcess direktíva értékével (ebben az esetben myproject). Végül be kell állítania a parancsfájl álnevét, hogy az Apache szerver a gyökérdoméretű kéréseket küldjön a wsgi.py fájlba:


.
Alias ​​/ statikus / home / 8host / myproject / static

Mindenkit megkövetel



Mindenkit megkövetel


WSGIDaemonProcess myproject python-home = / home / 8host / myproject / myprojectenv python-path = / home / 8host / myproject
WSGIProcessGroup myproject
WSGIScriptAlias ​​/ /home/8host/myproject/myproject/wsgi.py

Mentse és zárja be a fájlt.

Hozzáférési jogok

Az SQLite adatbázis használatával (ami szabványos), ne felejtse el megadni az Apache webszerver számára a hozzáférést.

Ehhez meg kell adnia a tulajdonoscsoportnak az íráshoz és az olvasáshoz való jogot. Alapértelmezés szerint az adatbázis fájl neve db.sqlite3, és a projektkönyvtárban kell lennie:

Adja át a fájlengedélyeket azon csoporthoz, amelybe az Apache szerepel; ez a csoport a www-adatok.

sudo chown: www-adatok

Ahhoz, hogy képes legyen írni egy fájlt, a csoportnak a fájl szülő könyvtárának tulajdonosa kell.

sudo chown: www-adatok

Most újra be kell állítania a tűzfalbeállításokat. Csukja be a 8000-es portot, és adjon hozzá egy kivételt az Apache forgalom számára:

sudo ufw törlés engedélyezése 8000
sudo ufw engedélyezi az 'Apache Full'

Ellenőrizze az Apache fájlok szintaxisát:

sudo apache2ctl configtest

Ha nincs hiba a fájlokban, a parancs visszatér:

Indítsa újra az Apache szolgáltatást a beállítások frissítéséhez.

sudo systemctl restart apache2

Megjegyzés. Nem kell megadnia a port számát.

Következő lépések

Most a Django alkalmazás egyéni virtuális környezetben fut, és a mod_wsgi modul segít az Apache-nak átalakítani a kéréseket egy érthető Django formátumba.

Miután megbizonyosodott arról, hogy az alkalmazás működik, folytathatja a biztonsági konfigurációt. Ha az alkalmazás rendelkezik domain névvel, ingyenes SSL tanúsítványt kaphat a Let's Encrypt-tól.

Üdvözlünk!
Ön ezt írta:

A Django egy produktív webes keretrendszer Python alkalmazásainak vagy webhelyeinek fejlesztésére. A Django egy egyszerű fejlesztői szervert is kínál a helyi kódfelméréshez. Sajnos a termeléshez sokkal biztonságosabb és erősebb webszervert kell keresnie, mivel ez a szerver teljesen helytelen.

És miért nem illik? Miért nem illeszkedik Django a hatalom és a biztonság szempontjából?
Felteszem a kérdést, tk. Nem igazán értem.
Köszönjük előre!

Nem a Django keretrendszerben, hanem a beépített fejlesztői kiszolgálón.

A Django fejlesztői szerver egy egyszerű és könnyű webszerver, amely lehetővé teszi, hogy tesztelje a webhelyet a fejlesztési szakaszban. Az ilyen webszerver nem képes megbirkózni a nagy forgalmakkal a gyártási szakaszban: csak akkor szükséges, hogy a fejlesztés során ne kelljen erőforrásokat és időt töltenie egy teljes értékű webszerver, például az Apache vagy a Nginx létrehozására.

Nagyon köszönöm a választ! Megértem, hogy

Kapcsolódó cikkek