Балансировка нагрузки рассматривается как более важной особенность в развитии сервисной стороны. После того, потому что Nginx как обычный веб-сервер, он также будет использоваться для крупномасштабного фоновым обратного прокси-сервера, Nginx асинхронный кадр может обрабатывать большое количество одновременных запросов, эти запросы могут одновременно быть распределены для хранения живой кулисы сервера (серверные сервера, далее по тексту бэкенда), чтобы сделать сложный расчет, и обработку ответа, и могут быть удобно в сервере расширения серверного, когда трафик возрастает.
Это означает, что по мере роста бизнеса и размер пользователя, только один сервер не может ответить на плечо высокого уровня параллелизма, поэтому больше серверов должны работать вместе, чтобы разделить давление и уменьшить давление на средства массовой информации всемогущ Nginx.
Во-первых, WSGI из двух службы Джанго на другой порт, например, как 8000 и 8001 (не запускайте Nginx Services)
Затем измените сайт конфигурации Nginx, оригинальный uwsgi_pass комментарий в привязки переменные
Сервер { слушать 8000 ; server_name локальный; access_log / корень / myweb_access.log; error_log / корень / myweb_error.log; client_max_body_size 75М; Местонахождение / { включают uwsgi_params; uwsgi_pass MyTest; # Uwsgi_pass 127.0.0.1:8001; uwsgi_param UWSGI_SCRIPT video_back.wsgi; uwsgi_param UWSGI_CHDIR / корень / video_back; } Местоположение / статический { псевдоним / корень / video_back / статические; } место / загрузки { псевдоним / корень / video_back / загрузки; } Error_page 500 502 503 504 / 50x.html; Местонахождение = / 50x.html { корень / USR / доли / Nginx / HTML; } } Сервер { слушать 80 ; server_name локальный; access_log / корень / video_vue_access.log; error_log / корень / video_vue_error.log; client_max_body_size 75М; Местонахождение / { #включают в себя uwsgi_params; # Uwsgi_pass 127.0.0.1:8000; # Uwsgi_pass MyTest; корень / корень / video_vue; Индекс index.html; try_files $ $ URI URI / / index.html; } Местоположение / статический { псевдоним / корень / video_vue / статические; } Error_log / корень / video_vue / error.log ошибки; }
Затем измените основной конфигурационный файл ВИМ /etc/nginx/nginx.conf, добавить конфигурацию балансировки нагрузки в конфигурации HTTP
корневого пользователя; worker_processes 1 ; error_log / вар / Журнал / Nginx / error.log предупредить; PID / вар / бег / nginx.pid; события { worker_connections 1024 ; } HTTP { включают в себя / и т.д. / Nginx / mime.types; default_type приложения / octet- потока; log_format главный ' $ REMOTE_ADDR - $ remote_user [$ time_local] "$ запрос" ' ' статус $ $ body_bytes_sent "$ HTTP_REFERER" ' ' "$ http_user_agent" "$ HTTP_X_FORWARDED_FOR" ' ; access_log / вар / Журнал / Nginx / из которых access.log главное; SendFile ПО; # tcp_nopush ПО; keepalive_timeout 65 ; # GZIP ON; включаемые /etc/nginx/conf.d/* .conf; вверх MyTest { Сервер 39.106.172.65:8000 . = 3 вес; # нагрузка на сервер кластера балансировки сервер 39.97.117.229:8001 вес 7 =. ; } }
Затем вы можете перезапустить службу:
systemctl перезагрузить Nginx . оказание услуг
Следует отметить , что стратегия балансировки нагрузки обычно используются следующие: 1 , опрос ( по умолчанию) каждый запрос по отдельности назначен другой раз для того фоновым сервером, если внутренний сервер вниз, может быть автоматически удалены. {Backserver вверх по течению сервера 192.168.0.14 ; сервер 192.168.0.15 ; } 2 , вес Вес опрос вероятность пропорциональна соотношению веса и доступу, для случая , когда производительность Неравномерности внутреннего сервера. {Backserver вверх по течению сервера вес 192.168.0.14 = 3. ; Сервер вес 192.168.0.15 7 =. ; } . 3 , ip_hash (IP - связывание) имеет проблему в описанном выше варианте осуществления , чтобы сказать, в системе балансировки нагрузки, если пользователь регистрируется на сервере , а затем , когда пользователь запрашивает второй раз, потому что мы балансировки нагрузки системы, каждый запрос будет перемещен на один из серверов в кластере, то сервер подключился один пользователь , а затем переехал на другой сервер, его Войти информация будет потеряна, это явно неуместно. Мы можем использовать ip_hash инструкцию , чтобы решить эту проблему, если клиент посетил сервер, когда пользователь обращается снова, запрос через алгоритм хэширования, чтобы автоматически найти сервер. Каждый запрос назначается в соответствии внутрибрюшинно результат хеширования визита, так что каждый посетитель , чтобы получить доступ фиксированный внутренний сервер, может решить проблему сессии. {Backserver вверх по течению ip_hash; Сервер 192.168.0.14:88 ; Сервер 192.168.0.15:80 ; } . 4 , ярмарка (третья сторона вилка) в зависимости от времени отклика запроса выделения на внутренний сервер, короткий ответ выделение приоритетного времени. {Backserver вверх по течению сервер1 сервера; Сервер Сервер2; выставка; } . 5 , url_hash (третья сторона вилка) в соответствии с результатами запроса выделения хэша URL , доступ к URL каждому направленному к тому же внутреннему серверу, задний конец сервер является эффективным , когда кэш , {Backserver вверх по течению сервера squid1: 3128 ; Сервер squid2: 3128 ; хэш $ REQUEST_URI; hash_method CRC32; }