Приложение django работает только с портом 8000

Я работаю над проектом и разместил его на ec2, чтобы проверить, все ли работает нормально или нет. Пока это только одностраничное приложение без конечной точки.

Проблема в том, что он работает только если я использую my_domain:8000 или my_ip:8000

вот файл конфигурации, который я написал.

server {
listen 8000;
server_name mydomain.info;

# to avoid any error while fetching fevicon
location = /favicon.ico { access_log off; log_not_found off; }

location /static/ {
    root /home/ubuntu/dev/myproject;
}

location / {
    include proxy_params;
    # communicate via socket file created by Gunicorn
    proxy_pass http://unix:/home/ubuntu/dev/myproject.sock;
}

}

Я включил его, используя:

sudo ln -s /etc/nginx/sites-available/config-file /etc/nginx/sites-enabled/

После этого я перезапустил nginx, используя

sudo systemctl restart nginx

запустил сервер, используя-

python3 manage.py runserver 0.0.0.0:8000

Это мой первый раз, когда я делаю это, и я думаю, что я сделал что-то неправильно в файле конфигурации или при включении, но я не могу понять это.

Надеюсь, вы используете nginx и gunicorn

  • установите gunicorn
  • настройте и запустите nginx для прослушивания порта 80 вместо 8000

Затем nginx будет через прокси передавать запросы django на gunicorn.

Когда вы запускаете python3 manage.py runserver 0.0.0.0:8000, django запускается сервер разработки, (который не подходит для производства), вместо этого используйте gunicorn, Создайте файл блока gunicron и включите и запустите его.

/etc/nginx/config-file

server {
    listen 80;
    server_name your_ip_address;

    client_body_buffer_size 10k;
    .......   
   

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/dev/myproject;
    }
    location /media/  {
        root /home/ubuntu/dev/content;
    }
    
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://unix:/home/ubuntu/dev/myproject.sock;
        proxy_read_timeout 120;
    }
}

создайте файл службы gunicorn /etc/systemd/system/my_gunicorn.service

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=nginx
WorkingDirectory=/root/project/myproject
ExecStart=/path to env/bin/gunicorn --workers 4 --bind unix:/home/ubuntu/dev/myproject.sock <myproject>.wsgi:application --access-logfile /var/log/gunicorn/access.log --error-logfile /var/log/gunicorn/error.log 

Restart=on-failure

[Install]
WantedBy=multi-user.target

После этого запустите службу gunicorn и nignx, Перейдите по ссылке для получения полной информации о настройке nignx-gunicorn-django.

https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-18-04.

Также проверьте ваши группы безопасности aws.

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