Переехал из : https://stackoverflow.com/questions/25304968/uwsgi-django-with-nginx-high-availability-setup сюда.
Я настраивал высокую доступность на RHEL 6.5. Мой стек
1. uwsgi
2. nginx
3. django
4. Pacemaker
Теперь я понимаю, что nginx можно легко настроить, отслеживая nginx_status.
location /nginx_status {
# Turn on nginx stats
stub_status on;
access_log off;
# Security: Only allow access from 192.168.1.100 IP #
allow 127.0.0.1;
# Send rest of the world to /dev/null #
deny all;
}
Это обеспечит мониторинг пульса для nginx.
Но мой вопрос в том, как обеспечить, чтобы uwsgi
будет в рабочем состоянии, поэтому когда появляется вторая машина nginx, она распознает uwsgi
процесс и быть привязанным к нему. Или если uwsgi
идет вниз, как обеспечить его поднять и перепривязать к nginx
предполагая кластерные машины:
1. x.x.x.x (main machine)
2. y.y.y.y (slave machine)
1. /apps (SAN)
/ apps доступны на обеих машинах как общее хранилище
1. virtualenv : /apps/venv
2. applicaiton in : /apps
3. uwsgi configuration in : /apps/config.d
4. running application : /apps/project
[uwsgi]
# the base directory (full path)
chdir = /apps/project
# Django's wsgi file
module = project.wsgi
# the virtualenv (full path)
home = /apps/venv
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# the socket (use the full path to be safe
socket = /tmp/project.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit
vacuum = true
#daemonize
daemonize = true
#logging
logger = file:/tmp/uwsgi.log
Я не понимаю, как uwsgi
будет работать в настройке HA?
Я бы не стал запускать uwsgi в настройке высокой доступности. Просто заставьте nginx взаимодействовать с локальным uwsgi и запустите nginx в настройке высокой доступности с кардиостимулятором или балансировщиком нагрузки.