Я использую 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 отображается, когда восходящий поток не работает. Так что нужно проверить апстрим и исправить.