Сервер Django не открывается с 0.0.0.0:8000

#django #nginx

Вопрос:

У меня есть сервер AWS, работающий на Nginx, на котором размещено приложение React, отлично работающее на сервере. Теперь я хочу, чтобы приложение Django для restframework было доступно на том же сервере.

Я следую документу и загружаю приложение Django на сервер и пытаюсь запустить приложение, попробовав python3 manage.py runserver 0.0.0.0:8000 . Ошибки нет, но я не могу получить доступ к своему ip http://server_domain_or_IP:8000 -адресу .

Конфигурация Nginx в /etc/nginx/conf.d/example.org.conf

 server {
        listen 80 default_server;
        server_name example.org;
        return 301 https://example.org;
}

server {
        listen 443 ssl;
        server_name example.org;

        ssl_certificate /etc/nginx/ssl/ssl_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/example.key;

        location / {
                root /home/ubuntu/example/build;
                index index.html index.htm;
        }
}

 

Пожалуйста, помогите, где я ошибаюсь?

Комментарии:

1. покажите свою настройку nginx.

2. Привет @RanuVijay, Добавлена конфигурация Nginx

3. Надеюсь example.org является заполнителем, а не фактическим доменным именем, в противном случае, очевидно, проблема в том, что оно не указывает на ваш зарегистрированный домен. Также брандмауэры, закрытые порты, настройки DNS и т. Д. и т. Д. И т. Д…

4. Да example.org это только для демонстрационных целей. Я сделал настройки, касающиеся моего живого домена

Ответ №1:

Таким образом, ваш Django работает на локальном хосте:8000, и в настройках Nginx вы не пересылаете свой запрос на этот адрес. Вы должны сопоставить запрос домена с вашим запущенным сервером Django, в рабочей среде у вас должно быть что-то вроде Gunicorn

Попробуйте с —

 upstream backend {
    server localhost:8000;
}
server {
        server_name example.com www.example.com;
        location / {
            include proxy_params;
            proxy_pass http://backend;
     }
 

это будет работать для не-https. Вы можете добавить протокол listen 443 ssl и SSL-сертификаты, чтобы ваш сервер блокировал прослушивание только HTTPS.