Како применити Дјанго апликацију:

Шта кажете на поздрав свима, ово је мој први чланак у <» DesdeLinux (de varios que tengo en mis borradores xD), espero les sea de utilidad 😀

Па, на мом новом и тренутном послу, тренутно се врши миграција неколико система на Дјанго (колико је чудно, а? КСД) и један од мојих задатака, осим развоја, је стављање у производњу ових, затим као добар шегрт, пошто сам први пут пустио апликацију у продукцију на правом серверу: $ Почео сам да читам званични документ сваког од потребних пакета стека (Гуницорн и Супервисорд највише), и видећи да туторијали На шпанском нису ми били превише јасни у неким аспектима, одлучио сам да створим мини водич са корацима које сам следио за пуштање апликације у производњу, заснован на стеку Дјанго, Гуницорн, Супервисорд, Нгинк и Постгрескл.

У случају када радим, сервери и даље раде на Дебиан Скуеезе-у, али водич би требао бити потпуно важећи за друге дистрибуције ... па кренимо одмах на ствар и кренимо:

Радићу као супер корисник. Пре свега, потребни су следећи пакети:

ПИП -> Алат за инсталирање и управљање пакетима за Питхон
aptitude install python-pip

Нгинк -> Веб сервер (користићемо га као обрнути прокси и за кеширање статичких датотека 'имг, јс, цсс') Инсталирамо га са:
aptitude install nginx

Надзорник -> Апликација за управљање и надгледање наше апликације, мада се користи за много више. Инсталирамо га са:
aptitude install supervisor

Виртуаленв -> Помаже нам у стварању прилагођеног виртуелног окружења за извршавање наше апликације. Инсталирамо га са:
aptitude install python-virtualenv

Гуницорн -> веб сервер за питхон (ово још нећемо инсталирати)

Претпостављам да би већ требало да имају инсталиран и конфигурисан постгрескл

псицопг2 -> Постгрескл конектор за питхон (нећемо га још ни инсталирати)

Створите виртуелно окружење помоћу виртуаленв:

Прво ћемо прећи на радни директоријум који ћемо користити за пуштање у производњу:
cd /var/www/

Тада ћемо у овом директоријуму створити виртуелно окружење:
virtualenv ENV-nombreApp

Прелазимо у директоријум који сам управо креирао виртуаленв
cd ENV-nombreAPP

Копирамо апликацију у овај директоријум и сада настављамо да активирамо окружење помоћу:
source bin/activate

Упит би сада требао изгледати (ENV)usuario@host:

Ово ће сада учинити да све што радимо буде смештено у директоријум / вар / ввв / ЕНВ-аппнаме / без утицаја на системске пакете

Сада прелазимо на директоријум апликације:
cd nombreApp

Настављамо са инсталирањем листе зависности апликација (ако је потребно), у којој су оне наведене у датотеци захтеве.ткт:
pip install -r requirements.txt

Такође можемо појединачно инсталирати пакете, на пример, да бисмо инсталирали конектор постгрескл:
pip install psycopg2

ГУницорн инсталација и конфигурација:

Да бисмо је инсталирали, радимо то на исти начин:
pip install gunicorn

Сада ћемо га конфигурисати, за ово ћемо створити датотеку која се зове гуницорн-деплои.пи у корену наше апликације (иако име може бити било које) са следећим садржајем:

bind = "127.0.0.1:8001" # dirección a donde accederá Nginx
logfile = "/var/www/logs/nombreApp/gunicorn.log" # dirección donde estarán los logs de la aplicación
workers = 1 # dependerá en medida de la carga de trabajo que tenga la aplicación, también depende del hardware con que se cuente
loglevel = 'info' # tipo de logging

Конфигурација супервисорда:

Сада поставимо надзорник, за то генеришемо конфигурациону датотеку помоћу

echo_supervisord_conf > /etc/supervisord.conf

Сада уређујемо конфигурациону датотеку:
vim /etc/supervisord.conf

И ми коментаришемо следеће редове уклањањем; (тацка зарез):

[уник_хттп_сервер] датотека = / тмп / супервисор.соцк [супервисорд] логфиле = / вар / лог / супервисорд.лог логфиле_макбитес = 50 МБ логфиле_бацкупс = 10 логлевел = дебуг пидфиле = / вар / рун / супервисорд.пид нодаемон = фалсе минфдс = 1024 минпроцс = 200 [рпцинтерфаце: супервизор] супервисор.рпцинтерфаце_фацтори = супервисор.рпцинтерфаце: маке_маин_рпцинтерфаце [супервисорцтл] серверурл = уник: [програм: аппнаме] цомманд = / вар / ввв / ЕНВ-аппнаме / бин / дјанго_уницорн -ц / вар / ввв / ЕНВ -Аппнаме / аппнаме / гуницорн-деплои.пи директориј = / вар / ввв / ЕНВ-аппнаме / аппнаме / аутостарт = труе ауторестарт = труе усер = Корисничко име редирецт_стдерр = труе стдоут_логфиле = / вар / ввв / логс / аппнаме / супервисорд.лог

Сада ћемо створити скрипту за надзор да започне са системом, за то ћемо створити датотеку:
vim /etc/init.d/supervisord

И додајемо следећи садржај:

 # Супервисорд ауто-старт # # десцриптион: Ауто-старт супервисорд # процесснаме: супервисорд # пидфиле: /вар/рун/супервисорд.пид СУПЕРВИСОРД = / уср / лоцал / бин / супервисорд СУПЕРВИСОРЦТЛ = / уср / лоцал / бин / супервисорцтл цасе $ 1 у старту) ецхо -н "Старт супервисорд:" $ СУПЕРВИСОРД ецхо ;; стоп) ецхо -н "Заустављање надзора:" $ СУПЕРВИСОРЦТЛ искључивање еха ;; рестарт) ецхо -н "Заустављање надзора:" $ СУПЕРВИСОРЦТЛ схутдовн ецхо ехо -н "Покретање надзора:" $ СУПЕРВИСОРД ецхо ;; да је Ц.

И сада дајемо дозволу за извршавање датотеке како би могла да почне са системом:
sudo chmod +x /etc/init.d/supervisord

Ажурирамо везе за покретање услуге:
sudo update-rc.d supervisord defaults

Услугу започињемо:
sudo /etc/init.d/supervisord start

Подешавање нгинк-а:

Овај корак је такође прилично једноставан, створићемо следећу конфигурациону датотеку од Апацхе за нашу апликацију:

vim /etc/nginx/sites-enabled/nombreApp

А ми ћемо вам додати следећи садржај

сервер {преслушај 9001; # порт на којем желе да нгинк сервер_наме слуша ввв.домаин.цом; # или 192.168.0.100, адреса којој ћемо приступити аццесс_лог /вар/лог/нгинк/Аппнаме.аццесс.лог; # где ћемо имати локацију евиденције апликација / {# где ће нгинк позвати када приступа ввв.доминио.цом/ проки_пасс хттп://127.0.0.1:8001; проки_сет_хеадер Хост $ хттп_хост; } лоцатион / статиц / {# где ће нгинк приступити када уђемо на ввв.доминио.цом/статиц/ алиас / вар / ввв / ЕНВ-аппнаме / аппнаме / статицфилес /; }}

И поново покрећемо нгинк:
service nginx restart

Подешавање Дјанго-а:

Изменимо дјанго датотеку за конфигурацију:
vim nombreApp/settings.py

Тражимо линију која каже ДЕБУГ = Тачно а ми мењамо вредност, преостало ДЕБУГ = Нетачно

Додамо ДБ параметре:

ДАТАБАСЕ = {'дефаулт': {'ЕНГИНЕ': 'дјанго.дб.бацкендс.постгрескл_псицопг2', # или мискл, или шта већ користе 'НАМЕ': 'ДБНаме', 'УСЕР': 'ДБУсер', 'ПАССВОРД' : 'ДБ пассворд', 'ХОСТ': 'лоцалхост', # или онај који им треба 'ПОРТ': '', # или онај који користе}}

Тражимо линију АЛЛОВЕД_ХОСТС = [] и додамо домен или адресу преко које ћемо приступити, остављајући нешто попут АЛЛОВЕД_ХОСТС = ['ввв.домаин.цом']

Конфигуришемо директоријум за статичке датотеке, тражимо ред који каже STATIC_ROOT = ' ' и мењамо вредност постављајући апсолутну путању тамо где желимо да буду наше статичке датотеке, у мом случају сам је оставио мање-више овако STATIC_ROOT='/var/www/ENV-nombreApp/nombreApp/statics/'

Скоро смо завршили, извршавамо следећу команду:
./manage.py collectstatic

Ово ће створити директоријум са именом 'статика на путу који смо навели у сеттингс.пи ', ту ће бити све наше статичке датотеке.

И на крају поново покрећемо надзорника да би узео нове промене:
supervisorctl restart nombreApp

И то би било све, на крају то није било толико тачно? чинило ми се једноставно 😀

Надам се да ће вам бити од користи, поздрав 😉

ГУницорн документација

Документација супервизора


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Ф3ниКс дијо

    Разумем да апликација Дјанго не би требало да се налази у корену фасцикле веб сервера (/ вар / ввв)? Због сигурности не знам да ли грешим.

    Поздрав.

    1.    урКх дијо

      У реду !!! Било је то нешто чега нисам био потпуно свестан, ажурираћу унос 😛 и чим се вратим у понедељак извршићу измене у кД апликацији
      хвала

  2.   Родриго Браво (гоидор) дијо

    Епале брат добар туториал. Такође сам недавно био у истој ствари, али у Дебиану 7 сам морао мање-више да претражујем и читам. Препоручујем вам да креирате виртуелно окружење виртуаленв у корисниковом дому у скривеној фасцикли.

    Поздрав!

  3.   Серв Фенриз дијо

    хахаха цтм јуче сам документовао Дјанго и већ пролазите кроз галаксију 999999 Поздрав мушкарци кД

  4.   даниел2ац дијо

    Врло добар чланак =) пре само недељу дана применио сам своју дјанго апликацију, али урадио сам је са увсги и нгинк, да ли знате какву предност има гуницорн? Видео сам да се много спомиње.
    Лепо је видети да дјанго постаје веома популаран, истина је најбољи оквир који сам видео =)

  5.   Озкар дијо

    За СТАТИЦ_РООТ оно што радим је дефинисање глобалне променљиве. Овако нешто:

    import os
    PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
    STATIC_ROOT = os.path.join(PROJECT_PATH, '../backend/static')

    Где је позадина апликација коју сам креирао. Тако да се уверавам да је тамо где примењујем пројекат глобални пут исти.

  6.   сгмарт дијо

    Занимљиво, покушаћу у будућности.

    Иначе, да ли неко зна како да омогући акценте и не-асции знакове у дјанго апликацији?

    Гледао сам свуда, ниједна од следећих метода ми не одговара:
    сис.сетдефаултенцодинг ('утф-8') # у ситес.пи

    # - * - кодирање: утф-8 - * - # у свакој питхон датотеци

    Уређивање сите.пи и стављање утф-8 уместо асции требало би да функционише, али $ филе моделс.пи ме обавештава да је моја датотека и даље асции.

    Неки предлог?

    1.    сгмарт дијо

      Успело је!!!!

  7.   аниме230 дијо

    врло добар водич, али могли бисте да направите један од начина за постављање моје апликације на веб сервер који је већ у фази израде
    хвала