веб сервер на питоне для django
Что мешает использовать uWSGI как http-сервер?
Вообще я остановился на gunicorn. То что нужно.
делаю через django примерно так:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "viewer.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
потом запуск
python viewer.py runserver 127.0.0.1:8080
не требовал например установки nginxnginx надо ставить просто чтобы был наружу только nginx, т.к. это уже стандарт для кучи разных вещей. Ну и статику отдавать Питоном — это не прилично.
Я знаю зачем и когда ставят нгинкс. Написал же что и почему мне надо.
Фактически ты захотелить нгинкс ради того, чтобы дрочить на технологи.
Я вообще не дрочу на технологии (ну кроме сильного ИИ - на него у меня стоит).
Из твоего поста я читаю, что тебя почему-то напрягает что что-то ещё должно запуститься. Ну так в ОС ещё десятки вещей запускаются.
Нгинкс надо считать уже чем-то вроде крона или сислога, запуск — при старте ОС.
Карго-культ какой-то.
Нгинксnginx (англ. engine x) (по-русски произносится как э́нжин-э́кс или э́нжин-и́кс)
Да. А ещё пайтон а не питон. Все эти разговоры о правильном произношении названий подзаебали.
Не надо хотеть веб сервер без нгинкса впереди.Дорогой Стив Джобс, я рад что на том свете у тебя есть инет, но спешу тебя растроить, что у меня не макось и я сам могу решать что я хочу.
Из твоего поста я читаю, что тебя почему-то напрягает что что-то ещё должно запуститься. Ну так в ОС ещё десятки вещей запускаются.Меня напрягает не запуск, а то что с нгинксом мне тяжело сделать кнопку "сделать заебись" потому что его может не быть в репах например (у редхата в дефолтной репе нгинкса нет - только в епеле), он может уже стоять и иметь какие-то настройки, которые автоматом править не хочется и т.д. и т.п. А мне надо иметь возможность закачать тар.гз и запустить одной коммандой полностью рабочее приложение. При этом мне абсолютно похер отдача статики - вебморда это существенно меньшая часть приложения и там одна css, пара джаваскриптов и немного иконок, на которые придётся меньше процента запросов. При этом не будет торчать в инет и будет работать в локальной сети, где скорости хорошие и время отдачи запроса не существенно по сравнению с выполнением запроса.
Так что мне нахуй не нужен нгинкс.
Нгинкс надо считать уже чем-то вроде крона или сислога, запуск — при старте ОС.Херня полная. Крон и сислог у меня стоит на 100% машин. Нгинкс на десятке в лучшем случае.
КронКакой из трёх? И если один стоит, значит два других - нет
Какой из трёх?какая разница? где-то cronie где-то vixie-cron. их кстати не три, а больше.
А мне надо иметь возможность закачать тар.гз и запустить одной коммандой полностью рабочее приложениеА надо чтобы пакет ставился rpm, коли у тебя Редхат. И в зависимостях — nginx. И будет всем хорошо.
Понимаешь, ты вот даже не хочешь увидеть, что без Нгинкса ты хрен сделаешь следующие вещи простым конфигом — сделать basic авторизацию, например. Или быстро закрыться от http флуда, если ты наружу показываешься. Наконец, сейчас принято везде использовать https, если ходят люди, а не роботы. Всё это из коробки умеет Нгинкс. А в твоем случае постоянно придется делать закат солнца вручную.
Наконец, ты можешь навешать кучу приложений, и все они будут доступны и не будут влиять друг на друга.
Ну а что в Редхате нет Нгинкса из коробки — это позор Редхата, а не повод пытаться отказаться от Нгинкса. Слишком уж хорош Нгикс и его фичи.
А надо чтобы пакет ставился rpm, коли у тебя Редхат. И в зависимостях — nginx. И будет всем хорошо.так не у меня и может не редхат. (и кстати скорее всего не редхат)
Понимаешь, ты вот даже не хочешь увидеть, что без Нгинкса ты хрен сделаешь следующие вещи простым конфигом — сделать basic авторизацию, например.а зачем мне бэсик авторизация, когда у меня джанго и нормальная авторизация, с правами, секурная и т.д.?
Или быстро закрыться от http флуда, если ты наружу показываешься.а я не показываюсь.
Наконец, сейчас принято везде использовать https, если ходят люди, а не роботы.а мне не надо https, потому что у меня большую часть времени ходит робот.
Всё это из коробки умеет Нгинкс. А в твоем случае постоянно придется делать закат солнца вручную.ой лол. ты мне ещё расскажи что нгинкс умеет. я за свою жизнь написал километры конфигов для него и один патч.
подзаебалитупость больше подзаебывает
Соответственно я имел development.ini и production.ini. Первый запускал в случае надобности на отдельном порту с багтрейсами и консолью отладки на странице, перезагрузкой при изменении файлов. Второй не имел перезагрузок, выдавал 500.html вместо багтрейсов, работал довольно шустро и был прописан в автозапуск.
Запуск отладочного режима с перезагрузкой выглядел так:
~$ paster serve --reload development.ini
Не знаю, насколько инфа полезна и актуальна. От TurboGears я отошел уже как года два.
Гуглинг предлагает gunicorn. Он поддерживает и paster, и django.
ой лол. ты мне ещё расскажи что нгинкс умеет. я за свою жизнь написал километры конфигов для него и один патч.Ну так тогда о чем речь?
Ты должен как нельзя лучше понимать, что nginx наружу — это самый хороший вариант. А что тебе понадобится из его фичей покажет время.
"ИДИ-КА ТЫ НАХУЙ. Я ЗНАЮ ЧЕГО ХОЧУ И ЧЕГО НЕ ХОЧУ. И НГИНКС Я НЕ ХОЧУ, ХОТЬ ОН МНЕ И НРАВИТСЯ."
1) сразу бы написал, что для внутренних нужд, никто бы не даебывался
2) есть такая штука для статики http://warehouse.python.org/project/whitenoise/
wsgi.py
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
settings.py
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
3) поднять продакшен джангу можно через gunicorn (кстати он статику тоже умеет раздавать)
для не особо нагруженного сервака раздавать статику будет без проблем
ssl и прочую поебень гуникорн тоже умеет
все в итоге сведется к следующему
virtualenv env
. ./env/bin/activate
pip install gunicorn django ...
tar ...
и вуаля готовый пакет
а на продакшене будет запускаться так
.../env/bin/gunicorn -k gevent -w 10 -b 0.0.0.0:80 import.path.to.wsgi:appication
В третьем питоне gevent нету правда, но это фигня для моих задач.
Статику наверное проще отдавать сразу через гуникорн, а не через wsgi, но вообще буду иметь в виду.
Оставить комментарий
YUAL
Пилю небольшой проектик на джанго. Обычные методы работы с джанго предполагают что мы используем связку uwsgi и сторонний web-сервер. А мне хотелось бы, чтобы он был вещью "в себе" и не требовал например установки nginx, а чтоб можно было просто сделать ./start_server.py и всё заработало. Что-то аналогичное встроенному серверу разработчика, но чутка производительнее.