NGINX отображает страницу по умолчанию, домен не перенаправляет

NGINX отображает страницу по умолчанию, домен не перенаправляет

В настоящее время я пытаюсь развернуть свое приложение Django на дроплете Ubuntu 18.04.3. Я следую этомуруководство.

Я успешно завершил обучение, и мое приложение обслуживается при посещении IP моего сервера и "www.domainname.com". Однако, когда я пытаюсь посетить адрес моего домена без "www" @ 'domainname.com', он показывает

отказался подключаться.

И как я уже говорил, когда я перехожу напрямую по IP-адресу, он отображается на 100% правильно и обслуживает статические файлы приложения.

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

Вот мой блок сервера NGINX @ /etc/nginx/sites-available/mysite:

server {
    listen 80;
    server_name 165.227.222.0;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ethan/cfsite/cfsite;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Я полностью закомментировал блок сервера по умолчанию, /etc/nginx/sites-available/defaultтак как прочитал, что он связан симлинком /etc/nginx/sites-enabled/.

Когда я sudo tail -F /var/log/nginx/error.logполучаю это:

2019/09/26 14:25:58 [alert] 6680#6680: *3 open socket #3 left in connection 4
2019/09/26 14:25:58 [alert] 6680#6680: aborting

Я предполагаю, что где-то возникла проблема с прокси-сервером или регистратор неправильно перенаправляет на DigitalOcean, поскольку прямой доступ к IP-адресу DO дает правильные результаты при обработке статических файлов.

Помогите, пожалуйста! Это простой сайт-портфолио, и я никогда раньше не настраивал сервер.

решение1

Пара моментов:

  • имя сервераОбычно он должен включать все имена, которые вы хотите использовать для этого сервера, например:

    server_name example.com www.example.com 165.227.222.0;
    
  • Любые записи DNS для вашего домена должны иметь «голую» или «незащищенную» запись A, указывающую на IP-адрес вашего сервера Nginx:

    например BIND

    example.com.    IN A    165.227.222.0    ; A Record for a "base" domain name
    

    Если вы используете сторонний DNS, то способ указания этой "голой" записи может отличаться. Для DNS-сервисов Digital Ocean это, по-видимому, с символом @.

    например, Digital Ocean "Bare" A Record

    Digital Ocean "Bare" A Record - Скриншот

Связанный контент