Назад | Перейти на главную страницу

NGINX как настроить несколько местоположений с SSL

Я использую nginx с несколькими местоположениями, чтобы направлять запросы на мой сайт и мой api. Я использовал certbot для создания сертификата SSL, и он автоматически добавляет строки в конфигурацию nginx для настройки SSL.

Файлы обслуживаются из папки html без проблем, однако любой веб-запрос к "redcted.org/api" возвращает 502 Bad Gateway. Это как если бы SSL не был настроен для местоположения "/ api", а настроен для местоположения "/". Что мне нужно изменить в моей конфигурации (ниже), чтобы это работало?

server {
 listen 80;

 server_name redacted.org www.redacted.org;
 location /api {
    proxy_pass http://localhost:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
 }
 location / {
    root /var/www/html;
 }

 listen 443 ssl; # managed by Certbot
 ssl_certificate /etc/letsencrypt/live/redacted.org/fullchain.pem; # managed by Certbot
 ssl_certificate_key /etc/letsencrypt/live/redacted.org/privkey.pem; # managed by Certbot
 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

 if ($scheme != "https") {
    return 301 https://$host$request_uri;
 } # managed by Certbot

}

Запуск в системе Digital Ocean Ubuntu 16.04.2

Переместить из комментариев

Проблема с апстримом. Ошибка 502 отображается, когда восходящий поток не работает. Так что нужно проверить апстрим и исправить.