Развертывание веб-приложения с помощью Django, Nginx и Gunicorn в Ubuntu 20.04

Я разработал веб-приложение с помощью Django и пытаюсь опубликовать его на виртуальной машине, созданной в Azure. Поскольку это тестовый сервер, я еще не приобрел домен или SSL сертификат, и я хотел бы, чтобы приложение было доступно по адресу http://XX.XX.XX.XX (где XX.XX.XX.XX.XX - публичный IP сервера). Для этого я использую следующий программный стек:

  • Ubuntu (20.04)
  • Django (3.0.7)
  • Virtualenv (20.0.17)
  • Gunicorn (20.1.0)
  • Nginx (1.18.0)

Для развертывания приложения я следовал этому руководству: https://arctype.com/blog/install-django-ubuntu/

Это мой /etc/systemd/system/gunicorn.socket:

[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target

Это мой /etc/systemd/system/gunicorn.socket:

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=myuser
Group=www-data
WorkingDirectory=/home/myuser/myapps/djangoapp/
ExecStart=/home/myuser/myapps/venv/bin/gunicorn --access-logfile - --workers 3 --bind
unix:/run/gunicorn.sock          djangoapp.wsgi:application
[Install]
WantedBy=multi-user.target

Это мой /etc/nginx/conf.d/django.conf:

server {
        listen 80;
        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
                root /home/myuser/myapps/djangoapp/;
        }
        location / {
                include proxy_params;
                proxy_pass http://unix:/run/gunicorn.sock;
        }
}

Оператор systemctl status gunicorn.socket возвращает следующее:

● gunicorn.socket - gunicorn socket
     Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
     Active: active (listening) since Thu 2022-03-10 08:57:02 UTC; 1h 21min ago
   Triggers: ● gunicorn.service
     Listen: /run/gunicorn.sock (Stream)
      Tasks: 0 (limit: 9536)
     Memory: 0B
     CGroup: /system.slice/gunicorn.socket

Mar 10 08:57:02 EpStagingUbuntu systemd[1]: Listening on gunicorn socket.

Однако, если я пытаюсь получить доступ к http://XX.XX.XX.XX, я попадаю на страницу Nginx по умолчанию: enter image description here

Вернуться на верх