Настройка Nginx + uWSGI + балансировка нагрузки Комментариев на CentOS

Балансировка нагрузки рассматривается как более важной особенность в развитии сервисной стороны. После того, потому что 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; 
}

рекомендация

отwww.linuxidc.com/Linux/2019-06/158949.htm