Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 27, 2015 19:17:16

devoratrix
Зарегистрирован: 2015-07-23
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

Всем доброго времени суток!

Вопрос вот в чем, есть сервер nginx, который при запросе http://url.py/ ссылается на соккет uwsgi. Хотел бы узнать как можно реализовать uwsgi так, чтобы при запросе http://url.py/statistic/ - nginx перенаправлял на один соккет, где работает один скрипт (script1.py) для обработки запроса, при запросе http://url.py/detalisation/ - nginx перенаправлял на другой соккет ,где работает другой скрипт (script2.py) для обработки запроса. Кто настраивал uwsgi с несколькими соккетами где на каждом соккете есть по одному Python скрипту.Либо посоветуйте любые другие альтернативы.
Заранее благодарю в помощи.
Прошу прощения если что не так в оформлении и т.д, первый раз на этом форуме.

Отредактировано devoratrix (Авг. 27, 2015 19:30:22)

Офлайн

#2 Авг. 27, 2015 20:01:49

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

В этом нет ничего сложного:

location /app1 {
try_files $uri @uwsgi_app1;
}

location @uwsgi_app1 {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/app/app1/socket;
}

location /app2 {
try_files $uri @uwsgi_app2;
}

location @uwsgi_app2 {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/app/app2/socket;
}

Отредактировано s0rg (Авг. 27, 2015 20:02:08)

Офлайн

#3 Авг. 27, 2015 20:29:48

devoratrix
Зарегистрирован: 2015-07-23
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

s0rg
В этом нет ничего сложного:
Спасибо. Более не понятно как в UWSGI параметры задать для создания разных соккетов под какие либо скрипты.
sudo uwsgi --ini /etc/uwsgi/vassals/app-python.ini

То как после запустить? Добавить еще таких строк с разными конфигурациями?

Нашел что то типа этого для Динамических приложений
location / {
  root html;
  uwsgi_pass uwsgicluster;
  uwsgi_param UWSGI_SCRIPT testapp;
  include uwsgi_params;
}
location /django {
  uwsgi_pass uwsgicluster;
  include uwsgi_params;
  uwsgi_param UWSGI_SCRIPT django_wsgi;
}
Тут не могу понять откуда он берет
uwsgi_pass uwsgicluster;

Отредактировано devoratrix (Авг. 27, 2015 20:35:13)

Офлайн

#4 Авг. 27, 2015 20:40:44

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

У вас в

devoratrix
/etc/uwsgi/vassals/app-python.ini
должень быть параметр socket - который и отпределяет откуда приложение будет данные принимать.

devoratrix
Нашел что то типа этого для Динамических приложений
Где тут динамика? Одно приложение:
devoratrix
uwsgi_param UWSGI_SCRIPT testapp;

devoratrix
uwsgi_pass uwsgicluster;
uwsgicluster должен быть описан где-то рядом как upstream

Отредактировано s0rg (Авг. 27, 2015 20:42:40)

Офлайн

#5 Авг. 27, 2015 21:18:31

devoratrix
Зарегистрирован: 2015-07-23
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

s0rg
uwsgicluster должен быть описан где-то рядом как upstream
Кластер настроил, только теперь проблема с запуском скриптов питоновских. я указал один сокет, конфиг uwsgi такой
[uwsgi]
socket = /home/app-python/sockets/uwsgi.sock
mount = statoperator=statoperator.py
mount = statclient=statclient.py
....
UWSGI не может обработать питоновский скрипт, хотя там такой код
import os,sys
def application(start_response):
             start_response('200 OK',[('Content-Type',' text/html')])
             return "<html><body><h1 style='color:blue'>Hello World !</h1></body></html>" 
             

Отредактировано devoratrix (Авг. 27, 2015 21:21:57)

Офлайн

#6 Авг. 27, 2015 21:31:23

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

devoratrix
mount = statoperator=statoperator.py
Что это такое?
Не вижу опции mount вообще

Вот такой конфиг у меня:
[uwsgi]
plugins      = python
app_root     = /home/{project}
chmod-socket = 664
chown-socket = www-data:www-data
max-requests = 1000
no-orphans   = true
vacuum       = true
master       = true
processes    = 4
chdir        = %(app_root)
pythonpath   = %(app_root)
virtualenv   = %(app_root)/env
touch-reload = %(app_root)/reload
module       = wsgi:app
pidfile      = /path/to/pid
socket       = /path/to/socket

Офлайн

#7 Авг. 28, 2015 13:14:15

devoratrix
Зарегистрирован: 2015-07-23
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Настройка nginx+uwsgi+python(sockets)

s0rg
Не вижу опции mount вообще
Разобрался. Спасибо за помощь! Теперь все работает.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version