Nginx: нет такого файла или каталога - PullRequest
4 голосов
/ 23 октября 2019

У меня есть vps сервер Reg.ru и domain freenom.

На Reg.ru я добавил domain через dnsadmin. Хорошо. Заметки созданы. Статус - synchronized.

На freenom в панели управления domain имеются следующие поля: Name, Type, TTL, Target. Name - пусто, TTL - 3600, Type - A, Target - ip из vps сервера. Статус - active.

Nginx

/ etc / nginx / sites-available / myproject и / etc / nginx / sites-enabled / myproject

server {
  listen 80;
  server_name example.com;
  location = /favicon.ico { access_log off; log_not_found off; }
  location /static/ {
    root /home/myproject;
  }
  location / {
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
  }
}

/ etc / nginx / nginx.conf

...
http {
    ...
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.*;
}

nginx -t - successful

systemctl status nginx- active

ufw status

Status: active

To                         Action      From
--                         ------      ----
8000                       ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
8000 (v6)                  ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)

Когда я открываю ip из vps-server в браузере, я получаю домашнюю страницу nginx.


gunicorn

/ etc / systemd / system / gunicorn.service

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/home/myproject
ExecStart=/home/myproject/myprojectenv/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
myproject.wsgi:application
[Install]
WantedBy=multi-user.target

/ etc / nginx/ sites-enabled # cat /etc/systemd/system/gunicorn.socket

[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target

systemctl status gunicorn - active


Django

/ home / myproject / myproject / .settings.py

ALLOWED_HOSTS = ['example.com', 'localhost']

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'NAME': 'test_db',
         'USER': 'test_user',
         'PASSWORD': 'test',
         'HOST': 'localhost',
         'PORT': '',
     }
}

Я запускаю manage.py runserver и получаю ответ от Django, что сервер запущен 127.0.0.1:8000.

Но когда я открываю сайт под именем domain (например, example.com), я получаю сообщение об ошибке:

Невозможно получить доступ к сайту

Не удалось найти IP-адрес сервера example.com.

...