Pereiti prie turinio

Django - Heroku - VPS


Rekomenduojami pranešimai

Sveiki. Turiu klausimą ir gal kas padės. Dabar hostinu savo Django appsą Heroku (sukūriau blogą edukaciniams tikslams), bet naudojant heroku kartais ilgai užtrunka kol respondina serveris + dėl Heroku dyno sistemos mano /media/ (user uploaded)failai po kiek laiko dingsta. Tad nusprendžiau išsinuomoti VPS'ą iš dedikuoti.lt ir laikyti media failus ir appsą jame. Žinau, kad tai prieštarauja pačiai frameworko koncepcijai, media failus reikėtų laikyti kokiame Amazon S3 ar kitame hoste, bet kol kas, kol mano appsai labai maži, manau bus gerai, performance kol kas man nelabai rūpi.

Klausimas - VPS serveris turi savo operacinę ir tai yra tartum atskiras kompas ? Man norint hostinti ten savo apsą, reikės nuotoliniu būdu susiinstaliuoti Pythoną, Postgres databazę ir viskas, galėsiu deployinti ir dirbti ? Antras klausimas - gal žinot pigesnių VPS už dedikuoti ?

Dėkui :)

Redagavo Dorian
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atsakymas į antrą klausimą :) https://www.ovh.lt/vps/

 

Sveiki. Turiu klausimą ir gal kas padės. Dabar hostinu savo Django appsą Heroku (sukūriau blogą edukaciniams tikslams), bet naudojant heroku kartais ilgai užtrunka kol respondina serveris + dėl Heroku dyno sistemos mano /media/ (user uploaded)failai po kiek laiko dingsta. Tad nusprendžiau išsinuomoti VPS'ą iš dedikuoti.lt ir laikyti media failus ir appsą jame. Žinau, kad tai prieštarauja pačiai frameworko koncepcijai, media failus reikėtų laikyti kokiame Amazon S3 ar kitame hoste, bet kol kas, kol mano appsai labai maži, manau bus gerai, performance kol kas man nelabai rūpi.

Klausimas - VPS serveris turi savo operacinę ir tai yra tartum atskiras kompas ? Man norint hostinti ten savo apsą, reikės nuotoliniu būdu susiinstaliuoti Pythoną, Postgres databazę ir viskas, galėsiu deployinti ir dirbti ? Antras klausimas - gal žinot pigesnių VPS už dedikuoti ?

Dėkui :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žinau, kad tai prieštarauja pačiai frameworko koncepcijai, media failus reikėtų laikyti kokiame Amazon S3 ar kitame hoste, bet kol kas, kol mano appsai labai maži, manau bus gerai, performance kol kas man nelabai rūpi.

Kodėl? Nebūtinai! Failų laikymas tiesiog lokalioje failų sistemoje neprieštarauja frameworko koncepcijai. Frameworkas nereiškia, kad būtinai turi kažkokią 3rd party paslaugą imt. Mažoms svetainėms turbūt tinkamiausias variantas ir yra laikyti media lokaliai :)

 

Klausimas - VPS serveris turi savo operacinę ir tai yra tartum atskiras kompas ? Man norint hostinti ten savo apsą, reikės nuotoliniu būdu susiinstaliuoti Pythoną, Postgres databazę ir viskas, galėsiu deployinti ir dirbti ? Antras klausimas - gal žinot pigesnių VPS už dedikuoti ?

Dėkui :)

Taip, VPS yra, nors virtuali, bet visiškai atskira ir pilna mašina – turi atskirą OS, rekomenduotina instaliuoti kažkokį rimtą www serverį priekyje (kaip nginx), kuris proxyintų į tavo Python aplikaciją + statiką/medią servintų pats. Aišku, ir viskas, ko reikia tavo aplikacijai: Postgres (serveris, python klientas), koks nors Pythoninis http serveris (Gunicorn?), visi dependencies, ir t.t. :)

 

Žodžiu, taip, čia jau serverį statysi nuo pat pradžių pats ir nebus automagiškai, kaip Heroku :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kodėl? Nebūtinai! Failų laikymas tiesiog lokalioje failų sistemoje neprieštarauja frameworko koncepcijai. Frameworkas nereiškia, kad būtinai turi kažkokią 3rd party paslaugą imt. Mažoms svetainėms turbūt tinkamiausias variantas ir yra laikyti media lokaliai :)

 

Aš kažkur skaičiau, kad media failus servinti iš ten pat iš kur servini aplikaciją yra blogai, nes tai yra neefektyvu memory/performance atžvilgiu, na tai kažkaip susiję su requestais ir Python kodu... Rašė, kad tai yra neefektyvu. Prisipažinsiu, galiu ir nusišnekėt, man dar reikia tuo pasidomėti plačiau.

 

 

Taip, VPS yra, nors virtuali, bet visiškai atskira ir pilna mašina – turi atskirą OS, rekomenduotina instaliuoti kažkokį rimtą www serverį priekyje (kaip nginx), kuris proxyintų į tavo Python aplikaciją + statiką/medią servintų pats. Aišku, ir viskas, ko reikia tavo aplikacijai: Postgres (serveris, python klientas), koks nors Pythoninis http serveris (Gunicorn?), visi dependencies, ir t.t. :)

 

Žodžiu, taip, čia jau serverį statysi nuo pat pradžių pats ir nebus automagiškai, kaip Heroku :)

 

Su Gunicorn esu susidūręs, tai yra web serveris kaip suprantu, bet šalia to dar reikės instaliuoti "pagrindinį" serverį, t.y. Apache / Nginx, jo ? Uoj bus vargo.. :) Na bet dėl to ir noriu turėti savo VPS, kad galėčiau mokytis ir suprasti visą veikimo principą, o ne "o, zjbs, veikia" :D

Edit: O galima su VPS dirbti ne per command lainą, o per remote desktop connection ar pan.? :D

Redagavo Dorian
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš kažkur skaičiau, kad media failus servinti iš ten pat iš kur servini aplikaciją yra blogai, nes tai yra neefektyvu memory/performance atžvilgiu, na tai kažkaip susiję su requestais ir Python kodu... Rašė, kad tai yra neefektyvu. Prisipažinsiu, galiu ir nusišnekėt, man dar reikia tuo pasidomėti plačiau.

Neefektyvu servint statinius failus būtent per Pythoninį HTTP serverį (kuris skirtas aplikacijai) – be reikalo prisideda daugiau sluoksnių, kurie visiškai nereikalingi – statiniams failams servinti, kai jau žinai, kur jie stovi, nereikia jokios Python logikos, o koks nors nginx ar Apache parašytas C kalba vis tiek bus greitesnis.

 

Su Gunicorn esu susidūręs, tai yra web serveris kaip suprantu, bet šalia to dar reikės instaliuoti "pagrindinį" serverį, t.y. Apache / Nginx, jo ? Uoj bus vargo.. :) Na bet dėl to ir noriu turėti savo VPS, kad galėčiau mokytis ir suprasti visą veikimo principą, o ne "o, zjbs, veikia" :D

Edit: O galima su VPS dirbti ne per command lainą, o per remote desktop connection ar pan.? :D

Su „pagrindiniu“ serveriu priešaky (80 porte) yra daug privalumų. Jis neabejotinai bus greitesnis, galėsi turėti daug virtualių hostų, kurie servintų skirtingas aplikacijas (ko neturėtum su Gunicorn) – nors ir PHP, Python, Ruby, dar kokių nors webų. Servinti statinius failus tiesiai, ir t.t.

 

Galima, aišku, diegtis kokį nors VNC, grafinę aplinką, ir t.t... Bet pagalvok, ar tai tau kuo nors padės? Nelabai. Vis tiek reikės redaguoti serverių konfigus, vesti į konsolę komandas, nes tiesiog nėra grafinių interfeisų kiekvienam įmanomam daemonui :) Geriau išmokti linux/unix pagrindus (gali kad ir virtualioje mašinoje, nebūtina laukti, kol nusipirksi VPS), o tada viskas paprasta :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Neefektyvu servint statinius failus būtent per Pythoninį HTTP serverį (kuris skirtas aplikacijai) – be reikalo prisideda daugiau sluoksnių, kurie visiškai nereikalingi – statiniams failams servinti, kai jau žinai, kur jie stovi, nereikia jokios Python logikos, o koks nors nginx ar Apache parašytas C kalba vis tiek bus greitesnis.

 

 

Su „pagrindiniu“ serveriu priešaky (80 porte) yra daug privalumų. Jis neabejotinai bus greitesnis, galėsi turėti daug virtualių hostų, kurie servintų skirtingas aplikacijas (ko neturėtum su Gunicorn) – nors ir PHP, Python, Ruby, dar kokių nors webų. Servinti statinius failus tiesiai, ir t.t.

 

Galima, aišku, diegtis kokį nors VNC, grafinę aplinką, ir t.t... Bet pagalvok, ar tai tau kuo nors padės? Nelabai. Vis tiek reikės redaguoti serverių konfigus, vesti į konsolę komandas, nes tiesiog nėra grafinių interfeisų kiekvienam įmanomam daemonui :) Geriau išmokti linux/unix pagrindus (gali kad ir virtualioje mašinoje, nebūtina laukti, kol nusipirksi VPS), o tada viskas paprasta :)

 

 

 

 

Na aš vis dar nelabai pagaunu esmės su serveriais :) Aš savo VPS'e galiu savo aplikaciją pasileisti tiek per Nginx, tiek per Gunicorn, tiek per abu serverius, taip ?..

Redagavo Dorian
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na aš vis dar nelabai pagaunu esmės su serveriais :) Aš savo VPS'e galiu savo aplikaciją pasileisti tiek per Nginx, tiek per Gunicorn, tiek per abu serverius, taip ?..

Python aplikaciją servina Gunicorn. Nginx jos nepaservins tiesiogiai, jis parašytas C, nesupranta Python.

 

Tu, aišku, gali tiesiog leisti Gunicorn, statyti jį ant 80 porto ir būti ramus. Bet taip dažniausiai yra dėl įvairių priežasčių nepatartina. Kad ir tos minėtos: statinius failus irgi privalėsi servinti gunicornu, negalėsi turėti kelių svetainių, ir t.t.

 

Įprastas patternas (kurį ir aš naudoju), yra tarkim štai šitaip: Nginx stovi 80 porte, aplikacijos stovi kažkokiuose kituose, prieinamuose tik per localhost. Nginx pamatęs naują requestą galvoja: jei tai statinis failas, tiesiog servina iš folderio, jei kreipiasi ne į statiką – tada perduoda requestą gunicornui, gunicornas grąžina response, nginx jį vėl perduoda klientui.

 

Gali susidaryti įspūdį, kad čia be reikalo gaunasi tas dar vienas serveris, bet iš esmės gerai: ir dėl vhostų, ir šiaip – nginx greitas ir geras, nebus jokios pastebimos „nuobaudos“.

 

https://en.wikipedia.org/wiki/Reverse_proxy

http://wiki.nginx.org/HttpProxyModule

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Python aplikaciją servina Gunicorn. Nginx jos nepaservins tiesiogiai, jis parašytas C, nesupranta Python.

 

Tu, aišku, gali tiesiog leisti Gunicorn, statyti jį ant 80 porto ir būti ramus. Bet taip dažniausiai yra dėl įvairių priežasčių nepatartina. Kad ir tos minėtos: statinius failus irgi privalėsi servinti gunicornu, negalėsi turėti kelių svetainių, ir t.t.

 

Įprastas patternas (kurį ir aš naudoju), yra tarkim štai šitaip: Nginx stovi 80 porte, aplikacijos stovi kažkokiuose kituose, prieinamuose tik per localhost. Nginx pamatęs naują requestą galvoja: jei tai statinis failas, tiesiog servina iš folderio, jei kreipiasi ne į statiką – tada perduoda requestą gunicornui, gunicornas grąžina response, nginx jį vėl perduoda klientui.

 

Gali susidaryti įspūdį, kad čia be reikalo gaunasi tas dar vienas serveris, bet iš esmės gerai: ir dėl vhostų, ir šiaip – nginx greitas ir geras, nebus jokios pastebimos „nuobaudos“.

 

https://en.wikipedia.org/wiki/Reverse_proxy

http://wiki.nginx.org/HttpProxyModule

 

Dar vienas šiek tiek kvailokas klausimas :D Ar sunku bus susistupinti Nginxą ir Gunicorną paryškintai vietai ? T.y. kad skirtingus requestus servintu skirtingas serveris. Na aš iš esmės viską darau kad išmokčiau ir esu nusiteikęs mokytis, tiesiog šiaip įdomu. Ir apskritai, ar toks setupas yra dažna praktika, daug kas taip daro ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dar vienas šiek tiek kvailokas klausimas :D Ar sunku bus susistupinti Nginxą ir Gunicorną paryškintai vietai ? T.y. kad skirtingus requestus servintu skirtingas serveris. Na aš iš esmės viską darau kad išmokčiau ir esu nusiteikęs mokytis, tiesiog šiaip įdomu. Ir apskritai, ar toks setupas yra dažna praktika, daug kas taip daro ?

Taip, dažna praktika. Nesunku, tutorialų pakankamai yra. Aišku, normaliai išmokti linux pagrindus visada praverčia. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip, dažna praktika. Nesunku, tutorialų pakankamai yra. Aišku, normaliai išmokti linux pagrindus visada praverčia. :)

 

Aišku, ačiū, užvedei ant kelio :) Manau kur kas naudingiau man bus viską pačiam susisetupinti negu kad naudotis Heroku, kur viskas "just works".

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...