Jeer
@Jeer
уверенный пользователь

Как работать с реверс прокси для .net?

У меня есть проект на .net core и в целях образования я хочу захостить его на линуксе. Сейчас читаю как это всё делается, и, самая грамотная связка, когда мы разворачиваем .net на встроенном сервере Kestrel или даже как self hosted, а перед ним ставим реверс прокси на Nginx. И на словах всё получается прекрасно, так как часть работы Nginx забирает на себя, например, отдаёт статику, чем разгружает основной сервер.
Но вот именно этот момент разъясните, пожалуйста. У меня есть изображения. Есть база данных с двумя таблицами: мета-описание (id, титл, альт, путь на сервере) и есть таблица-бекап с айдишником и здоровым бинарником самой картинки. Отображение картинки идёт через контроллер, то есть я вначале проверяю, есть ли на сервере по нужному адресу картинка, если есть, то отдаю её, если нет, то достаю из базы бекап, сохраняю на сервере в нескольких форматах и отдаю нужный назад. Операция, когда достаю бекап, долгая, но это работает, если переехал сервер или кто-то намудил и что-то удалил, или просто дев/прод подгружаются автоматически, то есть, в обычном режиме отработает один раз.
Суть в чём, я насколько понимаю, если приходит запрос на статику, то Nginx просто лезет по нужному пути на сервере и возвращает картинку. Соответственно, если картинки нет, вернёт 404.
А нужно сделать так, что если картинки нет, чтобы переправлял запрос на основной сервер, такое возможно провернуть?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Да, можно. Примерно так.
...
location /images/ {
    try_files $uri @mysite;
}
...
location @mysite {
...
   proxy_pass http://localhost:8080;
...
}

Если не будет картинки в /images, то сработает проксирование на localhost:8080
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы