首页 > 解决方案 > 将 Http 上的所有 api 调用重定向到 Nginx 中的 Https

问题描述

我正在运行一个 Django 应用程序并使用 Gunicorn 和 Nginx 将其部署在服务器上。它在 Http 上运行了一年。现在我使用“letsencrypt”将其更改为 Https。这是我的 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 调用都不起作用。我得到了找不到方法的错误。请指导我如何解决这个问题?

标签: djangonginxhttpsgunicorn

解决方案


推荐阅读