Django. Запуск проекта в связке uWSGI и Nginx » комментарииhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/2018-11-12T13:32:45.192614+03:00Блог Михаила Андреева, ака adw0rdadw0rd на "Django. Запуск проекта в связке uWSGI и Nginx"
2018-11-12T13:32:45.192614+03:00adw0rdhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6579@Александр, значит где-то ошиблись. 1) Не перезапустили nginx 2) server_name и хост который вы ввели в браузер не совпадают Чтобы проверить работает ли location, укажите location / { return 402; } И если при заходе на ваш хост будет выдана 402 ошибка, то тогда дело уже в uwsgi, иначе проблема…
<p>@Александр, значит где-то ошиблись.<br />
1) Не перезапустили nginx<br />
2) server_name и хост который вы ввели в браузер не совпадают</p>
<p>Чтобы проверить работает ли location, укажите </p>
<pre><code>location / {
return 402;
}
</code></pre>
<p>И если при заходе на ваш хост будет выдана 402 ошибка, то тогда дело уже в uwsgi, иначе проблема где-то до этого места</p>
Александр на "Django. Запуск проекта в связке uWSGI и Nginx"
2018-11-10T14:32:00.691740+03:00Александрhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6578Сделал все по инструкции, вместо django морды получаю стандартную заглушку nginx...
<p>Сделал все по инструкции, вместо django морды получаю стандартную заглушку nginx...</p>
Jaroslav на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-09-15T18:24:50+03:00Jaroslavhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6515Делаю все по Вашему мануалу. Ловлю на сервере ошибку 404 при обращении к своей API. В логах пишет следующее: WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x19daf60 pid: 18511 (default app). Настройки uWSGI: [uwsgi] chdir=/home/myuser/vwrapperhome/myproj master=true pidfile=/home/myuser/vwrapperhome/myproj/uwsgi/myproj_uwsgi.pid socket=/home/myuser/vwrapperhome/myproj/uwsgi/myproj_uwsgi.sock chmod-socket=750 virtualenv=/home/myuser/.virtualenvs/python3-venv pythonpath=. pythonpath=/home/myuser/vwrapperhome/myproj env=DJANGO_SETTINGS_MODULE=sources.myproj.settings module=sources.myproj.wsgi:application processes=1 threads=2 vacuum…
<p>Делаю все по Вашему мануалу. Ловлю на сервере ошибку 404 при обращении к своей API. В логах пишет следующее:<br />
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x19daf60 pid: 18511 (default app).</p>
<p>Настройки uWSGI:</p>
<pre><code>[uwsgi]
chdir=/home/myuser/vwrapperhome/myproj
master=true
pidfile=/home/myuser/vwrapperhome/myproj/uwsgi/myproj_uwsgi.pid
socket=/home/myuser/vwrapperhome/myproj/uwsgi/myproj_uwsgi.sock
chmod-socket=750
virtualenv=/home/myuser/.virtualenvs/python3-venv
pythonpath=.
pythonpath=/home/myuser/vwrapperhome/myproj
env=DJANGO_SETTINGS_MODULE=sources.myproj.settings
module=sources.myproj.wsgi:application
processes=1
threads=2
vacuum = true
harakiri=30
buffer-size=32768
</code></pre>
<p>Настройки nginx:</p>
<pre><code>server {
listen 80;
server_name my_ip_address:80;
charset utf-8;
client_max_body_size 75M;
location /media {
alias /home/myuser/vwrapperhome/myproj/sources/files/public/media;
}
location /static {
alias /home/myuser/vwrapperhome/myproj/sources/files/public/static;
}
location / {
uwsgi_pass unix:///home/myuser/vwrapperhome/myproj/uwsgi/myproj_uwsgi.sock;
include uwsgi_params;
}
}
</code></pre>
<p>Настройки supervisor:</p>
<pre><code>[program:myproj_uwsgi]
environment=PATH="/home/myuser/.virtualenvs/python3-venv/bin"
numprocs=1
directory=/home/myuser/vwrapperhome/myproj
command=/home/myuser/.virtualenvs/python3-venv/bin/uwsgi uwsgi/config.ini
user=myuser
autostart=true
autorestart=true
redirect_stderr=true
stopwaitsecs=60
stopsignal=INT
stderr_logfile=/home/myuser/vwrapperhome/myproj/logs/%(program_name)s_err.log
stdout_logfile=/home/myuser/vwrapperhome/myproj/logs/%(program_name)s_out.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=30
stdout_capture_maxbytes=1MB
</code></pre>
slav0nic на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-07-22T15:11:17+03:00slav0nichttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6508я уже ушёл с супервизора. Или голый uwsgi/emperor или systemd. Есть ещё circus, который сейчас более привлекательно смотрится
<p>я уже ушёл с супервизора. Или голый uwsgi/emperor или systemd.<br />
Есть ещё circus, который сейчас более привлекательно смотрится</p>
adw0rd на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-07-22T14:54:54+03:00adw0rdhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6507@slav0nic ну я так и написал На самом деле uWSGI может перезапускаться самостоятельно и его не надо контроллировать. Но я предпочитаю чтобы процессы контроллировались внешними утилитами, дабы избежать проблем автономности и всё унифицировать.
<p>@slav0nic ну я так и написал</p>
<blockquote>
<p>На самом деле uWSGI может перезапускаться самостоятельно и его не надо контроллировать. Но я предпочитаю чтобы процессы контроллировались внешними утилитами, дабы избежать проблем автономности и всё унифицировать.</p>
</blockquote>
slav0nic на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-07-22T12:02:59+03:00slav0nichttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6504supervisor здесь лишняя сущность имхо ;)
<p>supervisor здесь лишняя сущность имхо ;)</p>
Yuriy на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-04-21T15:21:58+03:00Yuriyhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6492Ну вот, этого мне и не хватало в 2012, чтобы пересесть на джангу. а теперь поздно Странно, я "пересел" на django в 2013, поначалу деплоив ее под apache2/mod_wsgi и все было ок :)
<blockquote>
<p>Ну вот, этого мне и не хватало в 2012, чтобы пересесть на джангу. а теперь поздно</p>
</blockquote>
<p>Странно, я "пересел" на django в 2013, поначалу деплоив ее под apache2/mod_wsgi и все было ок :)</p>
vasa_c на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-04-08T12:02:53+03:00vasa_chttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6489Ну вот, этого мне и не хватало в 2012, чтобы пересесть на джангу. а теперь поздно
<p>Ну вот, этого мне и не хватало в 2012, чтобы пересесть на джангу. а теперь поздно</p>
Mark на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-03-23T08:03:20+03:00Markhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6485Доброго времени суток, спасибо за статью. В образовательных целях я развернул джанго проект по вашей статье, но заметил странное поведение, суть проблемы я описал здесь http://stackoverflow.com/questions/36166430/uwsgi-worker-free-but-request-handling-has-significant-delay
<p>Доброго времени суток, спасибо за статью. В образовательных целях я развернул джанго проект по вашей статье, но заметил странное поведение, суть проблемы я описал здесь http://stackoverflow.com/questions/36166430/uwsgi-worker-free-but-request-handling-has-significant-delay</p>
Eugene MechanisM на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-02-08T11:46:37+03:00Eugene MechanisMhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6477Я использую 1 uwsgi.ini файл для разных окружений - production и development Все это легко реализуется благодаря тому, что можно использовать несколько секций в uwsgi.ini, например: [uwsgi] some default options for both environments [cache] cache = 1000 cache-blocksize = 65536 [staticfiles] static-map2 = /assets=%dpublic static-map2 = /uploads=%dpublic [producion] env =…
<p>Я использую 1 uwsgi.ini файл для разных окружений - production и development<br />
Все это легко реализуется благодаря тому, что можно использовать несколько секций в uwsgi.ini, например:<br />
[uwsgi]<br />
some default options for both environments<br />
[cache]<br />
cache = 1000<br />
cache-blocksize = 65536<br />
[staticfiles]<br />
static-map2 = /assets=%dpublic<br />
static-map2 = /uploads=%dpublic<br />
[producion]<br />
env = DEBUG=False<br />
env = DJANGO_CONFIGURATION=Production<br />
ini = :uwsgi<br />
ini = :cache<br />
venv = /server/.py/%c<br />
print = Loaded production settings!<br />
[development]<br />
env = DEBUG=True<br />
env = DJANGO_CONFIGURATION=Development<br />
ini = :uwsgi<br />
ini = :staticfiles<br />
venv = /home/mechanism/.virtualenvs/%c<br />
py-autoreload = 2<br />
show-config<br />
print = Loaded development settings!</p>
<p>это я просто для примера указал конфиг.<br />
ну и например в Procfile команда для запуска:<br />
web: newrelic-admin run-program uwsgi --ini uwsgi.ini:production</p>
<p>если нужно запустить секцию development просто подставить соответственно после uwsgi.ini:<br />
web: newrelic-admin run-program uwsgi --ini uwsgi.ini:development</p>
<p>Можно в конфиге увидеть как делается импорт одной секции в другую:<br />
ini = :cache<br />
Не очень понятно зачем столько раз в конфиге писать "/home/<username>" когда можно использовать значения из волшебной таблицы или задать переменные в конфиге и использовать их.</p>
<p>Я обычно кладу uwsgi.ini в корень прокта и использую значения из волшебной таблицы:<br />
%c - имя папки в которой лежит файл uwsgi.ini<br />
%d - полный путь до папки в которой лежит uwsgi,ini</p>
<p>можно прописать pp = %d<br />
где pp - pythonpath а %d пусть до папки с проектом.<br />
или touch-reload = %p<br />
где %p это сам файл конфига uwsgi.ini<br />
ну и в конфиге приведенном мной выше видно как используется %c - вирт окружение называется так же как и папка в которой лежит проект, поэтому venv = /server/.py/%c</p>
ivanscm на "Django. Запуск проекта в связке uWSGI и Nginx"
2016-02-02T16:55:12+03:00ivanscmhttps://adw0rd.com/2016/02/02/django-nginx-uwsgi/#comment-6476Наконец-то! На той же Хабре все запущено и много воды. Спасибо за статью )
<p>Наконец-то! На той же Хабре все запущено и много воды. Спасибо за статью )</p>