В настоящее время я пытаюсь развернуть свое приложение 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