Кэдди переписать с прокси

Я пытаюсь разместить приложение для реагирования с помощью Caddy, где несколько конечных точек перенаправляют на другие контейнеры докеров, а остальные переписывают базовый URL-адрес (он же файл index.html для приложения для реагирования).

Но прокси не пересылает в другие контейнеры, он просто показывает приложение реакции.

Как я могу заставить его отображать страницы API вместо реагирующего приложения?

example.com {
    gzip    
    root /app/frontend

    proxy /staticfiles django:8000 {
        transparent
    }
    proxy /api django:8000 {
        transparent
    }

    proxy /admin django:8000 {
        transparent
    }

    rewrite {
        to .* /index.html
    }
}

person cclloyd    schedule 13.08.2018    source источник


Ответы (1)


Я думаю, что это может быть проблема с директивным порядком или отсутствием упорядочения. Например, если rewrite произойдет до proxy, я не уверен. Вы можете попробовать переписать конфигурацию на что-то, что использует тот факт, что адреса сайтов caddy сначала сопоставляются с самыми длинными. Что-то вроде этого:

example.com {
    gzip    
    root /app/frontend

    rewrite {
        to .* /index.html
    }
}
example.com/staticfiles example.com/api example.com/admin {
    proxy / django:8000 {
        transparent
    }
}
person Mattias Wadman    schedule 14.08.2018
comment
Когда я пытаюсь это сделать, я получаю ошибку сертификата ssl, и когда я игнорирую эту ошибку, я получаю слишком много перенаправлений. - person cclloyd; 15.08.2018
comment
Хм, звучит странно. Внесены ли какие-либо другие изменения? Я бы попытался добавить больше журнала и использовать curl -v, чтобы увидеть, что происходит. - person Mattias Wadman; 15.08.2018