Я запускаю приложение Django и развернул его на сервере, используя Gunicorn и Nginx. Он работал на Http в течение года. Теперь я изменил его на Https, используя "letsencrypt". Вот моя конфигурация nginx.
server {
server_name my_project.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/my_project/my_project/;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/my_project.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my_project.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 = my_project.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name my_project.com;
return 404; # managed by Certbot
}
Эта конфигурация работает нормально, когда я открываю страницу проекта в браузере, т.е. она перенаправляет меня на страницу https. Но ни один из моих API не называет работу. Я получил ошибку, что метод не найден. Пожалуйста, сообщите мне, как я могу решить эту проблему?