Перенаправить запрос сайта Django на несколько портов с nginx - PullRequest
0 голосов
/ 27 января 2020

У меня есть домен, скажем «мой django .com». Когда он вызывается, я хочу обработать запрос на несколько портов на одном и том же IP. 122.34.55.1:8000, 122.34.55.1:8001, 122.34.55.1:8002 Это ожидается для балансировки нагрузки. Я использую wsgi, dgan go и ngix. Мой nginx файл конфигурации / etc / nginx / sites-available / djwsgi имеет вид -

    server {
        listen 80;
        listen 8001;
        listen 8002;
        listen 8003;

        location = /favicon.ico { access_log off; log_not_found off; }
        root /home/raka/djwsgi;
        server_name  mydjango.com;

        location /static/ {
            root /home/raka/djwsgi;
        }

        location / {
            include uwsgi_params;
            uwsgi_pass unix:/run/uwsgi/djwsgi.sock;
        }
    }

Но по умолчанию мой django .com отображается только с портом 80. Другие порты вызываются, когда я упоминаю номер порта, например, мой django .com: 8002 Что мне нужно, - когда я звоню, мой django .com nginx должен каждый раз вызывать следующий порт. Например, 80, затем 8001, затем 8002, 8003, затем 80, 8001,. Пожалуйста, любое тело предложить любую идею!

Спасибо

Ответы [ 2 ]

1 голос
/ 27 января 2020

Я не уверен, что ты этого хочешь. Скажи мне

upstream mydjangoback {
       server 127.0.0.1:8000;
       server 127.0.0.1:8001;
       server 127.0.0.1:8002;
}

server {
        listen 80;

        location = /favicon.ico { access_log off; log_not_found off; }
        root /home/raka/djwsgi;
        server_name  mydjango.com;

        location /static/ {
            root /home/raka/djwsgi;
        }

        location / {
            proxy_pass http://mydjangoback;
        }
    }
0 голосов
/ 28 января 2020

Я нашел полное решение. Я публикую это здесь. Вот как nginx и wsgi используются для балансировки нагрузки на наших сайтах и ​​избегают ручного запуска приложения Django на сервере.

upstream backend {
    server 127.0.1.1:8002;
    server 127.0.1.1:8001;
    server 127.0.1.1:8000;
}


server {
    listen 80;
    listen [::]:80;

    location = /favicon.ico { access_log off; log_not_found off; }
    root /home/raka/djwsgi;
    server_name  mysite.com;

    location /static/ {
        root /home/raka/djwsgi;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/run/uwsgi/djwsgi.sock;
        proxy_pass http://backend;
    }
}

server {
    listen 8000;
    listen 8001;
    listen 8002;

    location = /favicon.ico { access_log off; log_not_found off; }
    root /home/raka/djwsgi;
    server_name  mysite.com;

    location /static/ {
        root /home/raka/djwsgi;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/run/uwsgi/djwsgi.sock;
    }
}

Существует множество ключей, которые можно установить в приведенной выше конфигурации для достижения дополнительная выгода. Как и в файле конфигурации wsgi, мы можем упомянуть количество процессов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...