apache - python

122 views
Skip to first unread message

Jaroslav Vysoký

unread,
Jan 23, 2018, 3:33:43 AM1/23/18
to djan...@googlegroups.com
Ahoj všichni! 

Momentálně jsem nucen pracovat na tomto serveru: 

Vzhledem k tomu, že Python je pedf.cuni.cz popelkou, tak je pro mě pozitivním faktem, že se vůbec někdo zabýval možností spuštění pythoní webové aplikace na tomto serveru. Návod je tady: 
(ve skutečnosti tam běží Python 3.5)

Já té vazbě python aplikace - wsgi - web server moc nerozumím. Používám to na pythonanywhere.com dle instrukcí zde uvedených, a všechno funguje, jak má. 

Tady to vypadá, že to řešení asi není úplně up-to-date, ale hlavně mi zde chybí možnost provést reload aplikace (jako na pythonanywhere), takže mi tu zůstávají různá rezidua dříve spuštěných aplikací. 

Dokáže mi někdo poradit, zda existuje možnost, jak bych uživatelsky zajistil reload aplikace? Nebo je třeba přinutit administrátory, aby dodali nějakou takovou možnost? Nebo je třeba tlačit administrátory k nějaké zásadnější změně? Jak by mělo vypadat "správné" řešení? 

Díky předem i zadem za rady! 

Jarda V. 

starenka .

unread,
Jan 23, 2018, 3:47:55 AM1/23/18
to djan...@googlegroups.com
Touch reload na mod_wsgi + apache urcite de, pred lety sem to bohuzel taky pouzival. 

Cely to funguje tak, ze o beh appky se bohuzel stara ten mod v apachi (narozdil od beznyho pristupu: uwsgi/gunicorn-supervisor-socket-nginx). Na konkretnejsi dotaz rad odpovim.

S

-----
'aknerats'[::-1]

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAFrUbnkbEYydUy5%2BbuQmM0UcmKfo0hNQTSQVA1xjukn5wYzqhA%40mail.gmail.com.
Další možnosti najdete na https://groups.google.com/d/optout.

Vláďa Macek

unread,
Jan 23, 2018, 4:10:11 AM1/23/18
to djan...@googlegroups.com
mod_python uz urcite ne.

mod_wsgi pro Apache je stale bezne pouzivane, jedou mi na tom leta
projekty, stabilne.

Je treba pocitat s tim, ze mod_wsgi pouziva nejaky zakompilovany interpret
Pythonu a ve virtualenvu muzes mit jiny. Je to treba syncnout ukazanim
python path na spravne adresare, abys mel stejne pythoni prostredi v apachi
i v prikazovem radku.

mod_wsgi modul potrebuje tzv. wsgi skript (Django pripravi zakladni) a
mod_wsgi hlida jeho timestamp. Pokud ho zmenis, v linuxu treba prikazem
touch, tak mod_wsgi pred pristim requestem reloadne celou appku.

Doporucuju nezapinat threadovani, ale jet mod_wsgi viceprocesove. Pouzivam
to 10+ let a nejsou s tim tak zadne problemy. Threadovany beh zanasi rizika.

Pomalu se chystam zmenit svuj pristup, poradne otestovat gunicorn, ktery by
mi bezel za nginxem a opustit mod_wsgi. Bude to mit radu vyhod (sjednoceni
prostredi, lehky webserver, ...).

Snad jsem pomohl,

V.


On 23.1.2018 09:47, starenka . wrote:
> Touch reload na mod_wsgi + apache urcite de, pred lety sem to bohuzel
> taky pouzival. 
>
> Cely to funguje tak, ze o beh appky se bohuzel stara ten mod v apachi
> (narozdil od beznyho pristupu: uwsgi/gunicorn-supervisor-socket-nginx).
> Na konkretnejsi dotaz rad odpovim.
>
> S
>
> -----
> 'aknerats'[::-1]
>
> On Jan 23, 2018 09:33, "Jaroslav Vysoký" <jarosla...@gmail.com
> <mailto:jarosla...@gmail.com>> wrote:
>
> Ahoj všichni! 
>
> Momentálně jsem nucen pracovat na tomto serveru: 
> http://kraken.pedf.cuni.cz
>
> Vzhledem k tomu, že Python je pedf.cuni.cz <http://pedf.cuni.cz>
> popelkou, tak je pro mě pozitivním faktem, že se vůbec někdo zabýval
> možností spuštění pythoní webové aplikace na tomto serveru. Návod je
> tady: 
> http://kraken.pedf.cuni.cz/python/kotekl/hlavni
> <http://kraken.pedf.cuni.cz/python/kotekl/hlavni>
> (ve skutečnosti tam běží Python 3.5)
>
> Já té vazbě python aplikace - wsgi - web server moc nerozumím.
> Používám to na pythonanywhere.com <http://pythonanywhere.com> dle
> instrukcí zde uvedených, a všechno funguje, jak má. 
>
> Tady to vypadá, že to řešení asi není úplně up-to-date, ale hlavně mi
> zde chybí možnost provést reload aplikace (jako na pythonanywhere),
> takže mi tu zůstávají různá rezidua dříve spuštěných aplikací. 
>
> Dokáže mi někdo poradit, zda existuje možnost, jak bych uživatelsky
> zajistil reload aplikace? Nebo je třeba přinutit administrátory, aby
> dodali nějakou takovou možnost? Nebo je třeba tlačit administrátory k
> nějaké zásadnější změně? Jak by mělo vypadat "správné" řešení? 
>
> Díky předem i zadem za rady! 
>
> Jarda V. 
>
> --
> --
> E-mailová skupina djan...@googlegroups.com
> <mailto:djan...@googlegroups.com>
> Správa: http://groups.google.cz/group/django-cs
> <http://groups.google.cz/group/django-cs>
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu django-cs+...@googlegroups.com
> <mailto:django-cs+...@googlegroups.com>.
> <https://groups.google.com/d/msgid/django-cs/CAFrUbnkbEYydUy5%2BbuQmM0UcmKfo0hNQTSQVA1xjukn5wYzqhA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> Další možnosti najdete na https://groups.google.com/d/optout
> <https://groups.google.com/d/optout>.
>
> --
> --
> E-mailová skupina djan...@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu django-cs+...@googlegroups.com
> <mailto:django-cs+...@googlegroups.com>.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/CA%2B7MNVpQMWBL9ndTprrRmpX9s4zLD3Xv%3D3n9VNyhVodnvgV9uw%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-cs/CA%2B7MNVpQMWBL9ndTprrRmpX9s4zLD3Xv%3D3n9VNyhVodnvgV9uw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> Další možnosti najdete na https://groups.google.com/d/optout.


--
: Vlada Macek : http://macek.sandbox.cz : +420 608 978 164
: UNIX && Dev || Training : Python, Django : PGP key 97330EBD

Jirka Vejrazka

unread,
Jan 23, 2018, 4:18:49 AM1/23/18
to django-cs
Taky jsem leta pouzival Apache + mod_wsgi, naprosta spokojenost. Nemel jsem problemy ani s vice thready. Jednoduchy "touch app.wsgi" krasne reloaduje aplikaci.

To ted s resenim Apache + gunicorn mam vic problemu, z nejakeho zahadneho duvodu je potreba reloadnout i Apache po nasazeni nove verze, gunicorn nestaci.

  Jirka

>     <http://groups.google.cz/group/django-cs>
>     ---
>     Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
>     „django-cs“ ve Skupinách Google.
>     Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
>     zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com
>     <mailto:django-cs+unsubscribe@googlegroups.com>.
>
> --
> --
> E-mailová skupina djan...@googlegroups.com
> Správa: http://groups.google.cz/group/django-cs
> ---
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „django-cs“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/66d1d06f-139b-e436-4be4-ec1c0e406257%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Petr Messner

unread,
Jan 23, 2018, 4:29:40 AM1/23/18
to djan...@googlegroups.com
Vzhledem k tomu, že Python je pedf.cuni.cz popelkou, tak je pro mě pozitivním faktem, že se vůbec někdo zabýval možností spuštění pythoní webové aplikace na tomto serveru. Návod je tady: 
(ve skutečnosti tam běží Python 3.5)

Hm, někdo si s tím asi docela máknul :)
 
Já té vazbě python aplikace - wsgi - web server moc nerozumím. Používám to na pythonanywhere.com dle instrukcí zde uvedených, a všechno funguje, jak má. 

No tvým úkolem je dodat Python funkci. A web server tu Python funkci spouští. WSGI jenom říká, jak má ta Python funkce vypadat - co má přijímat za parametry a co má vracet.

Výstupem všech těch frameworků (Flask, Django, Bottle) je právě ta jedna funkce, cestu k ní pak sdělíš webserveru.

 
Tady to vypadá, že to řešení asi není úplně up-to-date, ale hlavně mi zde chybí možnost provést reload aplikace (jako na pythonanywhere), takže mi tu zůstávají různá rezidua dříve spuštěných aplikací. 

Tipuju, že mod_wsgi bude spouštět aplikaci každého uživatele ve zvlášť procesech s uid nastaveným na toho uživatele, takže přinejhorším by mělo jít tento proces najít (ve výstupu příkazu "ps aux") a killnout.

 
Dokáže mi někdo poradit, zda existuje možnost, jak bych uživatelsky zajistil reload aplikace? Nebo je třeba přinutit administrátory, aby dodali nějakou takovou možnost? Nebo je třeba tlačit administrátory k nějaké zásadnější změně? Jak by mělo vypadat "správné" řešení? 

Minimálně by info, jak udělat reload, měli doplnit do toho návodu :)

PM

MirekZv

unread,
Jan 25, 2018, 6:38:06 PM1/25/18
to django-cs
Vám závidím, že o tom tolik víte. To bych chtěl taky pochopit.

@Messa: Zdá se mi úplně zásadní to Tvoje "tvým úkolem je dodat Python funkci" - s tím se musím pořádně sžít, jinak asi wsgi nepochopím.

@Stařenka: Jo, ten normální stack, ideálně s nginxem. Nechtěl bys to někdy vysvětlit u piva?






Dne úterý 23. ledna 2018 9:33:43 UTC+1 Jaroslav Vysoký napsal(a):

MirekZv

unread,
Jan 25, 2018, 6:44:48 PM1/25/18
to django-cs
Jardo, používání toho serveru má pro Tebe nějaké administrativní / institucionální / organizační důvody?

Co použít něco jiného? Konkrétně třeba Forpsi virtuál server za 370 Kč ročně, kam si dáš Debian+Nginx+.. Běhá to výborně (např. zřejmě mnohem líp než 4x tak drahý Wedos). Brzdou je leda jen 20G SSD disku.






Dne úterý 23. ledna 2018 9:33:43 UTC+1 Jaroslav Vysoký napsal(a):
Ahoj všichni! 

Jachym Cepicky

unread,
Jan 26, 2018, 2:23:55 AM1/26/18
to djan...@googlegroups.com

muj wsgi skript ma vzdycky tak 3 radky. zbytek je flask/django

hele, když se o tom bavime, říkáte teda, že nejlepší je dneska gunicorn za nejakym httpd serverem (apache/ngnix)? Prijde mi to jako overhead, kdyz mod_wsgi funguje, v cem je vyhoda?

j


--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/615eb971-5d80-42bd-866b-a66a6f2404d1%40googlegroups.com.

Jirka Vejrazka

unread,
Jan 26, 2018, 2:32:03 AM1/26/18
to Jachym Cepicky
Taky nad tim dumam. Presel jsem nedavno na gunicorn, ale vazne zvazuju prechod zpet na mod_wsgi, prijde mi to jednodussi a nikdy jsem s tim nemel zadny problem. 

Zrovna minuly tyden jsem migroval na HTPS a ze zkusenisti vim, ze pri poziti mod_wsgi je to jednodussi (ne o moc, ale pri pouziti gunicornu je po‎treba pohlidat vic veci).
 Jirka

starenka .

unread,
Jan 26, 2018, 2:44:40 AM1/26/18
to djan...@googlegroups.com
A jak pod mod_wsgi behate rq nebo celery? 

Me se libi ta oddelenost: python-neco, co ho spusti-socket-http/proxy. Supervisor se imo konfiguruje a udrzuje o dost jednodusejc, nez vhosty... (ano, vhost stejne potrebujete, ale minimalni - tj. cti socket, davej statiky). 
-----
'aknerats'[::-1]

Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/20180126073200.6135890.76421.5798%40gmail.com.

Jirka Vejrazka

unread,
Jan 26, 2018, 3:00:55 AM1/26/18
to django-cs
Ja rq any celery nepouzivam, tak mozna nedokazu docenit vsechny vyhody gunicornu. Pro me pouziti se mi libi, ze vse resi Apache. A ten vhost config je v mem pripade dokonce jednodussi (nebo srovnatelny) nez pri pouziti gunicornu. Ale nic proti nemu nemam, asi nepouzivam dost komplexni prostredi, abych ho plne docenil :)

  Jirka

Vláďa Macek

unread,
Jan 26, 2018, 4:09:17 AM1/26/18
to djan...@googlegroups.com
On 26.1.2018 08:44, starenka . wrote:
> A jak pod mod_wsgi behate rq nebo celery?

Nepouzivam. Na podobny pozadavky angazuju jine nastroje.

> Me se libi ta oddelenost: python-neco, co ho spusti-socket-http/proxy.
> Supervisor se imo konfiguruje a udrzuje o dost jednodusejc, nez vhosty...
> (ano, vhost stejne potrebujete, ale minimalni - tj. cti socket, davej
> statiky).

Presne tak (i kdyz nevim, jestli pouziju supervisor, teprve se na zmenu
chystam).

mod_wsgi styl (ac ho jak jsem psal pouzivam mnoho let) neni moc "unixy",
tim myslim, ze pro Django je to trochu smichanina. Vlastne si v configu
Apache nasmerovanim na knihovny ve virtualenvu definujete znovu virtualenv
a do mod_wsgi zakompilovanemu interpretu, ktery nemuzete obvykle ovlivnit,
rikate "tady to je navic".

Init Django stacku probiha jinak z mod_wsgi a jinak z management commandu,
ktere jsou na mych projektech zasadni. Nerikam, ze se s tim rozdilem neda
naucit zit. Da, ale obcas to cloveka pokouse a obvykle se to stane ve
vypjatych chvilich, kdy klient zacina zvedat oboci.

Takze od oddeleni webserveru a runtimu si slibuju sjednoceni a jistejsi
kompetence. gunicorn je IIRC pure-python uvnitr projektoveho izolovaneho
virtualenvu, takze se vse spousti naprosto stejne.

V.

Jachym Cepicky

unread,
Jan 26, 2018, 5:03:50 AM1/26/18
to djan...@googlegroups.com
no, to je spíš otázka na sysadminy, já se snažím se v tom moc nevrtat, ale bojím se, že občas mě to nemine

pá 26. 1. 2018 v 10:09 odesílatel Vláďa Macek <ma...@sandbox.cz> napsal:
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-899d-63ba-b15e9eef8449%40sandbox.cz.

Vláďa Macek

unread,
Jan 26, 2018, 6:04:37 AM1/26/18
to djan...@googlegroups.com
On 26.1.2018 11:03, Jachym Cepicky wrote:
> no, to je spíš otázka na sysadminy, já se snažím se v tom moc nevrtat,
> ale bojím se, že občas mě to nemine

Mozna, ale co je tou otazku? Seriozniho vyvojare nemine problematika
nasazeni do produkce. Mel by umet doporucit zpusob a zduvodnit ho. Oddeleni
vyvoje a spravy je vzyvany ideal, ale 100% to nechceme. Nejlepsi je
spoluprace, umet si vyjit vstric, akceptovat reseni "druhe strany", pritom
mit dany kompetence a zodpovednost.

V.

Ales Zoulek

unread,
Jan 26, 2018, 6:16:45 AM1/26/18
to djan...@googlegroups.com
Rozdeleni stacku na
- Web Server
- Supervisord, v nem:
- Gunicorn (bezici wsgi django/flask) + Celery nebo jiny job worker

Ma fakt hrozne moc vyhod. Pro sysadminy i developery, ktery roli adminu musi obas zastat. Napr.  
* oddelena (a tedy typicky prehledneji) konfigurace,
* oddeleny procesy (lze restartovat postupne jednotlive django workery, aniz by to ovlivnilo server, popr. pokud prvni worker nenabehne kvuli chybe, neshodite cely web), 
* snazsi a explcitnejsi nastaveni venvu
* moznost bezet pod stejnou strechou ne-wsgi procesy z projektu (celery, nebo pravidelny cron-like scripty), takze mate na jednom miste v supervisor configuraci vsechny entrypointy projektu
* nejste vazani na apache (nginx napr je )
....

Je toho fakt hodne, ale vsechno je to jen variace na tema separation of concerns.

Prikladu na webu je hodne a hodne (viz treba https://gist.github.com/laborautonomo/f9591d15f0c40dcd50785a42e21c2228 ). Myslim, ze jsme se o tom i nekolikrat bavili na prazskym Pyvu :)

A.

Petr Messner

unread,
Jan 26, 2018, 6:36:05 AM1/26/18
to djan...@googlegroups.com
Teď už se docela vzdalujeme od původního Jardova dotazu, měl bych k tomu pár připomínek:

- proč supervisord a ne systemd? Síla zvyku/již hotová infrastruktura, nebo systemd nepoužíváte úmyslně?
- pokud budete chtít izolovat projekty trochu víc než jen venvem a použijete proto Docker (nebo jinou kontejnerovou technologii), tak je podle mě nejjednodušší pustit v Dockeru gunicorn a nasměrovat na něj systémový nginx (popř. Apache, ideálně s event MPM).
- dá se mod_wsgi kombinovat s asyncio? Pokud nepoužijete mod_wsgi, tak opět, stačí vám akorát spustit aiohttp server a nakonfigurovat proxy v nginxu (popř. Apache).

PM

Dne 26. ledna 2018 12:16 Ales Zoulek <ales....@gmail.com> napsal(a):
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-899d-63ba-b15e9eef8449%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8qJOnbL1JH-cpRnQeQPW8oaL2ebZv7GwbobDEp9C0P%3DXg%40mail.gmail.com.

starenka .

unread,
Jan 26, 2018, 6:42:09 AM1/26/18
to djan...@googlegroups.com
Este pridam svoji trosku do mlejna: misto gunicornu muzete pouzit i uwsgi ;)

---
In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1]

Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-899d-63ba-b15e9eef8449%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CA%2BvQZ8qJOnbL1JH-cpRnQeQPW8oaL2ebZv7GwbobDEp9C0P%3DXg%40mail.gmail.com.

Ales Zoulek

unread,
Jan 26, 2018, 6:52:36 AM1/26/18
to djan...@googlegroups.com
- proč supervisord a ne systemd? Síla zvyku/již hotová infrastruktura, nebo systemd nepoužíváte úmyslně?

Zaprve kterykoliv z nich je fajn. (Podobne jak klidne jinej webserver, nebo jak pise starenka prohodit gunicorn.) Prave proto, mame ty vrstvy oddeleny :)

Ja osobne mam radsi supervisord, protoze je na vsech distro stejny, je v pythonu (daji se do nej dopsat pluginy - https://pypi.python.org/pypi/supervisor-wildcards ;-) ), ma API, vyhovuje mi struktura configu i oddeleni "mych" procesu od tech systemovych. A hlavne, je to standardni process control system v GUNS (Gunicorn+Nginx+Supervisor) stacku - dobre dokumnetovany, mnoho hotovych ansible/fabric/bash/salt scriptu pro automatizaci, Q/A stackoverflow, etc... 

A.

Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.

Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-899d-63ba-b15e9eef8449%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAK9Q5BTTkinQkb4HGJv5Tq28JG4WdTU3SYp%2BQ50necfJ7PVRRw%40mail.gmail.com.

Jachym Cepicky

unread,
Jan 26, 2018, 7:22:32 AM1/26/18
to djan...@googlegroups.com
No, já nad tím uvažuju spíš nějak jako

- docker s gunicorn
- apache/jinej httpd server na přesměrování portů

tím se docílí dost zapouzdření, možnosti testování, přepínání instancí

vlastně se divím, že ten docker tady zatím nepadnul

P.S: Jardův dotaz byl, počítám, inspirovaný nějakým zadáním ze školy, ale posunuli jsme to trochu víc akademickým směrem a já jsem za to rád, vlastně ani na konferách tohle zatím nikdo nerozebral z různých úhlů - max. tak ještě téma "takhle to máme, je to nejlepší řešení na všechno a všichni na to hned přejděte"

pá 26. 1. 2018 v 12:52 odesílatel Ales Zoulek <ales....@gmail.com> napsal:

Petr Messner

unread,
Jan 26, 2018, 8:44:17 AM1/26/18
to djan...@googlegroups.com
Možná se na to můžeme podívat ještě z větší dálky :) Ať už chceme, nebo ne, tak Python je na webu minoritní platforma oproti PHP a Node.js. Myslím si, že ve snahách okolo deploymentu bude rozumnější dívat se na obecnější technologii spíš než na Python-only řešení. A díky kontejnerům takové technologie existují. Mám tím na mysli "lehké" hostingy typu now.sh, hyper.sh, a pak cloudové služby GCP Kubernetes Engine, AWS Fargate... Např. stačí dodat kontejner, který na nějakém portu poslouchá přes HTTP a je jedno, jestli uvnitř běží Python nebo cokoliv jiného. Vy jako vývojář řešíte kontejner (resp. image), cloud za vás řeší spouštění, škálování, bezešvý deployment, CI, staging, logování, zálohování... Pokud nemáte rádi cloud, tak to může být i nějaké udělátko běžící na vašem železe.

Ještě to teda není v ideálním stavu, teprve to všechno vzniká a krystalizuje. Tak se aspoň přinejmenším můžeme dívat :)

Uvedu příklad: dělám komunitní web typu pyworking.cz. Teď děláme trochu redesign a chci někde publikovat rozpracované verze, aby se na to mohli podívat ostatní, ale nechci to ještě nasazovat naostro. Pokud nad tím přemýšlím "klasicky", tak mi někde na serveru jede aplikace (ať už gunicorn, gunicorn v dockeru, mod_wsgi...) a nějak nakonfigurovaný webserver a kdybych chtěl pustit další verzi webovky, tak musím přidat/upravit konfiguraci, něco nového spouštět... No a nebo to, co mám v aktuálním adresáři rozpracované, vypublikuju na now.sh jediným příkazem a dostanu URL, na které se to za půl minuty objeví. Toto si klidně můžu napojit i na CI a publikovat každý pull request například. Jediné, co je potřeba, je krátký Dockerfile, ve kterém se akorát spustí gunicorn. Nikam se nepřihlašuju přes SSH (takže neřeším Putty ani SCP), nevytvářím na serveru venv (to dělá ten Dockerfile, ale tomu já nakonec ani nemusím až tak rozumět), nic nereloaduju (protože se při každém nasazení spouští nový kontejner).

Nejlepší na tom je, že takový deployment je obecný (tj. ne jen pro Python) a zároveň jednodušší, než Python "standard" (šolichání s venvy, supervisory...). Nevýhodou je, že to je pár vrstev navíc, které buď zaplatíte v cloudu, nebo se trochu zapotíte při setupu na vlastním železe, ale to je doufám jen otázka času.

Co si o tom myslíte? :)

PM

Dne 26. ledna 2018 13:22 Jachym Cepicky <jachym....@gmail.com> napsal(a):
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/28aab262-7d9e-899d-63ba-b15e9eef8449%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

Další možnosti najdete na https://groups.google.com/d/optout.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAAZUH4E35OzmAa1JSxfDNB-CmVwMyU1sCKbMANn3dbvAYKzipQ%40mail.gmail.com.

jsmesami

unread,
Jan 26, 2018, 11:24:50 AM1/26/18
to django-cs
Dnes jsem vyměnil Supervisor za Circus a Gunicorn za Chaussette a spokojenost. Běží to ve stejným virtualenvu jako projekt (Python 3), super easy konfigurace.

Jaroslav Vysoký

unread,
Jan 26, 2018, 11:58:03 AM1/26/18
to django-cs
Ahoj! 

Díky tobě i všem ostatním za odpovědi!

Omlouvám se, že jsem zatím nereagoval, ale to víte, mladej kluk, zkouškový období...

Na ten server jsem to dával, protože to chtěl vyučující. Jinak pro své potřeby zatím vystačím s tím, co mi nabízejí free účty (a jeden placený tím nejlevnějším tarifem) na pythonanywhere.com

Na tom školním serveru jsem to nějak rozchodil. Sice mi tam sem tam něco visí na adresách, kde by už nic být nemělo, ale asi to bylo nějakým nevhodným importem. To je asi spíš na osobní diskusi. V tuto chvíli to chodí, rozcestník je tady: http://kraken.pedf.cuni.cz/~vysokyjar/. Zdroje mám na githubu, ale musel jsem to na tom krakenu trošku "vohnout". 

Už musím utíkat, za chvilku jedu z klukama do Brna na devconf. 

Díky i za diskusi, která je nad požadovaný rámec!!!

Čau všichni!

Jarda V. 


Dne pátek 26. ledna 2018 0:44:48 UTC+1 MirekZv napsal(a):

Vláďa Macek

unread,
Jan 27, 2018, 3:14:56 PM1/27/18
to djan...@googlegroups.com
Zdar, dík za tip.

mod_wsgi u mě v pohodě zajišťuje i správu běhu appky díky tomu, že Apache
je velmi stabilní. Když bych chtěl provést zmíněné separation of concerns a
Apache s díky poslat do důchodu, musím mít jinou správu běhu wsgi appky.

Doteď jsem předpokládal, že zkusím gunicorn+supervisord, což často slýchám.
Supervisor je v Debianu. I když se mi v článku o Circus principiálně líbí,
v čem je jiný od supervisoru, tak `pip install circus` do virtualenvu začal
sázet na políčko hromadu balíků a zhebnul na pokusu o kompilaci psutil.
Tenhle bloating přístup nemám rád, zejm. na produkčním serveru.

Uvědomuju si, že snad všichni dnes máme jeden init systém jaksi povinně. I
když systemd rád nemám, nemůže mi dát to, co hledám, tedy co nejjednodušší
spolehlivý setup?

Řídíte někdo Django appku ze systemd v produkci? Na jaké potíže jste narazili?

Našel jsem třeba toto:
https://github.com/Matt-Deacalion/systemd-django/blob/master/services/django-website.service
Vypadá to sjízdně...

Dík,

Vláďa

Věroslav Kaplan

unread,
Jan 30, 2018, 5:21:59 AM1/30/18
to Django CS
Jasně. systemd + uwsgi . Už několik let.

--V

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.

Další možnosti najdete na adrese https://groups.google.com/d/optout.

Adam Štrauch

unread,
Jan 30, 2018, 7:52:10 AM1/30/18
to djan...@googlegroups.com
Na Roští máme administraci řešenou přes systemd a hostingy běží v supervisord. Obojí je stejně bezproblémové.

Dne 27. ledna 2018 21:14 Vláďa Macek <ma...@sandbox.cz> napsal(a):
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/9ba3e38e-360e-33cd-daf0-1810485b7457%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.



--
Adam Štrauch
Roští.cz | +420 777 63 63 88

Petr Blahos

unread,
Jan 30, 2018, 8:58:34 AM1/30/18
to djan...@googlegroups.com
Nepopsali byste to prosím někde "pro blbý?" Jestli mohu prosit, pro až tak blbý jako:
Jak mají vypadat soubory pro systemd, a co vlastně dělají?

Jasně. systemd + uwsgi . Už několik let.
--V

Systemd pro spouštění uwsgi a uwsgi na tu wsgi app? Čili vpodstatě 
normální systémová instalace uwsgi, a je jedno, zda je to přes 
systemd nebo init, že?

--
Petr



Petr Messner

unread,
Jan 30, 2018, 10:34:53 AM1/30/18
to djan...@googlegroups.com
Dokumentace: http://uwsgi-docs.readthedocs.io/en/latest/Systemd.html

Jsou tam popsané dva režimy - Emperor (hromada web apps pod jednou "emperor" uwsgi instancí) a One service per app, to by mohlo být jednodušší.

Takže prostě vytvoříš dva soubory:

/etc/systemd/system/uwsgi-app@.socket
/etc/systemd/system/uwsgi-app@.service

A spustíš:

systemctl enable uwsg...@cgit.socket
systemctl enable uwsg...@cgit.service
systemctl start uwsg...@cgit.socket

To, co dáš za zavináč (např. cgit) se do těch souborů doplní jako hodnota %i.

Já osobně třeba ten socket ani nepoužívám, takže v mém případě (teda dokud jsem to nepředělal na Docker) bych to spustil takhle:

# /etc/systemd/system/www.messa.cz.service
[Unit]
Description=www.messa.cz
After=network.target
[Service]
ExecStart=/home/messa/weby/www.messa.cz/start.sh
User=messa
Type=simple
Restart=always
[Install]
WantedBy=default.target

Ten skript start.sh by obsahoval jen nějaké "exec uwsgi --něco". Pak už jen systemctl enable www.messa.cz; systemctl start www.messa.cz (tu příponu .service si to doplní).

To systemctl enable dělá to, že se to začne automaticky spouštět při startu systému.

Je to teď lepší? :)

PM


Dne 30. ledna 2018 14:18 Petr Blahos <petrb...@gmail.com> napsal(a):

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages