Подключение проекта Django, размещенного на виртуальной машине, с помощью Nginx и Gunicorn
Я новичок в развертывании приложений. В настоящее время я размещаю свой проект Django на виртуальной машине Ubuntu с IP-адресом 192.168.xxx.xxx. Он размещен на физическом сервисе с публичным IP-адресом 202.xxx.xxx.xxx (используется порт 8080).
У меня установлены и подключены gunicorn и nginx, и они работают правильно, так как sudo systemctl status gunicorn
и sudo systemctl status nginx
показывают, что они работают без ошибок. Однако, когда я пытаюсь получить доступ к публичному IP-адресу 202.xxx.xxx.xxx:8080, я получаю страницу Nginx по умолчанию.
Что касается того, как я настраивал gunicorn и nginx, я следовал руководству, опубликованному здесь:
Вот файл gunicorn.socket:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/home/myProject/myProject.sock
[Install]
WantedBy=sockets.target
Вот файл gunicorn.service:
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=myUserName
Group=www-data
WorkingDirectory=/home/myProject
ExecStart=/home/myProject/env/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/myProject/myProject.sock core.wsgi:application
[Install]
WantedBy=multi-user.target
Вот содержимое моего файла /etc/nginx/sites-available/myProject
server {
listen 80;
server_name 192.168.xxx.xxx;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/myProject;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/myProject/myProject.sock;
}
}
Нужно было использовать публичный адрес в server_name или IP-адрес виртуальной машины, на которой размещен мой проект Django? Кроме того, я также попробовал изменить порт в файле nginx на 8080, но почему-то это все равно не работает.