Как включить HTTP-доступ для API Django на HTTPS-сервере - PullRequest
0 голосов
/ 18 июня 2019

У меня есть веб-сайт, работающий на сервере, который перенаправляет все HTTP-запросы на HTTPS, как показано ниже.У меня также есть несколько API-интерфейсов Django, которые обслуживает сервер (скажем, https://www.example.com/apis/log). Я использую реализацию Django в Ubuntu + Nginx и установил сертификат SSL с помощью Let's Encrypt.

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


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

    server_name xxx.xx.xx.xx example.com www.example.com;
    listen 80;
    return 404; # managed by Certbot
}

Сейчас,Я хотел бы сделать следующее:

  • Запустить веб-сайт в текущих настройках (все запросы HTTP должны перенаправляться на HTTPS)
  • API Django должны работать как с HTTP, так и с HTTPS.Я хотел бы, чтобы и http://www.example.com/apis/log и https://www.example.com/apis/log были доступны.

1 Ответ

1 голос
/ 18 июня 2019

в вашей конфигурации nginx

server {
    listen 80;
    listen 443 default_server ssl;

    # other directives
}

80 - для http и 443 - для https

...