Как настроить nginx, gunicorn для запуска 2 серверов django с разными доменными именами - PullRequest
0 голосов
/ 16 июня 2019

У меня DjangoServer1 и DjangoServer2 работают на virtualenv, где установлен gunicorn.nginx устанавливается под пользователем в Ubuntu.

Я делаю DjangoServer1 под управлением nginx, gunicorn.

IP-адрес сервера: 12.12.12.12

Домен веб-сайта для DjangoServer1 - это mydomain1.com

Домен веб-сайта для DjangoServer2 - это mydomain2.com

ЭтоКонфигурация сервера nginx для DjangoServer1.

/ etc / nginx / sites-available / DjangoServer1

server {
    listen 0.0.0.0:80;
    server_name 127.0.0.1;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
            root /home/user/develop/DjangoServer1;
    }

    location / {
            include proxy_params;
            proxy_pass http://unix:/home/user/develop/DjangoServer1/DjangoServer1.sock;
    }
}

Я запускаю DjangoServer1:

1) В virtualenv выполните команду gunicornзапустить DjangoServer1

gunicorn --daemon --workers 3 --bind unix: /home/user/develop/DjangoServer1/DjangoServer1.sock DjangoServer1.wsgi

2) Затем выполните:

sudo service nginx restart

3) В маршрутизаторе я перенаправляю порт 80, 8000 на сервер 12.12.12.12

4) В браузере введите: 12.12.12.12.DjangoServer1 работает.Введите: mydomain1.com, DjangoServer1 работает.

Теперь я хочу запустить DjangoServer2 под тем же сервером: 12.12.12.12

Вопрос: Как настроить DjangoServer1 и DjangoServer2 на другой порт?

Как запустить команду gunicorn для использования другого порта?Следующая команда использует порт 8000?Почему?

gunicorn --daemon --workers 3 --bind unix: /home/user/develop/DjangoServer1/DjangoServer1.sock DjangoServer1.wsgi

Как настроить файл nginx?

1 Ответ

1 голос
/ 16 июня 2019

Измените команду Gunicorn, чтобы запускать серверы на указанном порту.

gunicorn --daemon --workers 3 --bind :8080 DjangoServer1.wsgi

Теперь измените файл конфигурации NGINX, чтобы пересылать его на сервер приложений.

upstream django-server-1 {
    server 0.0.0.0:8080;
}


server {
    listen 0.0.0.0:80;
    server_name 127.0.0.1;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
            root /home/user/develop/DjangoServer1;
    }

    location / {
            include proxy_params;
            proxy_pass http://django-server-1;
            proxy_next_upstream off;
    }
}

Перезапустите службу NGINX.

Это перенаправит все запросы, поступающие на порт 80, на сервер приложений DjangoServer1.

Если вы явно хотитедля пересылки запросов, поступающих на 8080, на ваш сервер приложений, измените блок server в конфигурации NGINX или добавьте новый блок сервера с вашими правилами.

...