(Django / Nginx / Gunicorn) HTTPS не может обслуживать патентованные каталоги на моем сайте

Довольно новичок в Nginx и развертывании веб-сайтов в целом. У меня есть сайт, который я собираюсь развернуть с помощью дроплета DigitalOcean. Сейчас он работает, но только с http://[SERVER-IP] (здесь)

Хотя сайт загружается с HTTPS ( здесь), ни один domain.com/[ X ] сайт не работает.

Цель - заставить все URL в пределах https://rejesto.com нормально функционировать и вести на соответствующие сайты.

Для контекста, все ссылки на странице предоставлены системой тегов Djagno {% url '[url]' %}; они работают как положено локально, и с использованием http://[SERVER-IP]/[ X ].


Я предполагаю, что проблема находится в конфигурационных файлах Nginx, потому что:

  1. http://46.101.92.95/blog ведет на правильную страницу. (к лучшему или к худшему)
  2. https://rejesto.com/blog не работает.

Вот (то, что я считаю) соответствующий файл конфигурации:

/etc/nginx/sites-available/rejesto.com:

server {

   server_name rejesto.com www.rejesto.com;
   location / {
        try_files $uri $uri/ =404;
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/rejesto/myprojectdir;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot                                                   
    ssl_certificate /etc/letsencrypt/live/rejesto.com/fullchain.pem; # managed by Certbot  
    ssl_certificate_key /etc/letsencrypt/live/rejesto.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot                  
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot                    
                                                                                           
} 

server {
    if ($host = www.rejesto.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = rejesto.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    listen [::]:80;

    server_name rejesto.com www.rejesto.com;

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

    return 404; # managed by Certbot

}


server {

    listen 80;
    server_name 46.101.92.95;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/rejesto/myprojectdir;
    }

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


Для дополнительного контекста я следовал этим руководствам, предоставленным Digital Ocean:

Ваша конфигурация nginx неверна.

  1. Удалите certbot и удалите все сертификаты.

  2. Используйте эту конфигурацию nginx:

    server {
        listen 80;
        listen [::]:80;
        server_name www.rejesto.com;
        return 301 $scheme://rejesto.com$request_uri;
     }
    server {
        listen 80;
        listen [::]:80;
        server_name rejesto.com;
        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
             root /home/rejesto/myprojectdir;
         }
         location / {
              include proxy_params;
              proxy_pass http://unix:/run/gunicorn.sock;
         }
     }
    
     server {
         listen 80;
         server_name 46.101.92.95;
    
         location = /favicon.ico { access_log off; log_not_found off; }
         location /static/ {
         root /home/rejesto/myprojectdir;
         }
    
         location / {
             include proxy_params;
             proxy_pass http://unix:/run/gunicorn.sock;
         }
     }
    
  3. Инициализируем nginx:

    sudo nginx -t
    sudo systemctl restart nginx

  4. Переустановите certbot и выпустите ваши сертификаты.

'settings django: ALLOWED_HOSTS = ['exemple.com','ip']

Dns pointe vers le domaine ? 

systemctl restart gunicorn 
systemctl restart nginx

proxy_pass http://unix:/var/run/gunicorn.sock'
Вернуться на верх