Rainbow
Rainbow
Задача просто пережить 1-2 часа без явного старого js. proxy_cache решит.
Andor
да сложи на cdn
Andor
или забить? :)
Rainbow
ну, хочется декларативности, как yml. apply а остальное делает кто-то другой. proxy_cache сам чистит.
Rainbow
так то понятно, что всегда забивали и можно продолжать.
Andor
не ну если ты этот proxy_cache будешь предсказуемо заполнять и вычищать, то можно наверное сделать более-менее нормально
Andor
(или нет)
Rainbow
Andor
ключевое слово: предсказуемо
Andor
там же ттл на каждый урл, насколько я помню, поэтому они будут в разное время отваливаться
Andor
и может случиться так что часть уже отвалилась, а часть ещё лежит в кеше
Rainbow
Rainbow
вероятность того, что ни один пользователь за 24 часа не загрузит второй чанк крайне мала. А отвалится сначала основной.
G72K
Rainbow
Rainbow
Rainbow
*заранее.
Rainbow
и сказать, что это можно взять даже в offline и будет ок.
Andor
смотри карочи, у тебя index.html грузится с приложения бекенда, а статика с соседних контейнеров, так?
Vadim
Rainbow
нет, я сейчас кладу assets рядом с беком там, где всплывает такой кейс. SSR и тп.
G72K
Ну я про то, что ваш nginx может тоже в кеш браузера положить что хочет заранее , т.е. задачу можно решить не привлекая жс программистов воообще
Andor
Rainbow
ну он отдаёт статику в надежде, что nginx сверху разрулит нагрузку эту.
Andor
что такое "кладу ассетс рядом с беком"?
Rainbow
Vadim
на истио в чистом k8s это проще делать, ну и велосипеды конечно же
G72K
Andor
а, ты просто хочешь добавить кеша для ассетов, а ориджин этих ассетов всё равно будет на том же самом поде бекенда?
Andor
тогда норм будет
Rainbow
Andor
s/если/когда/
Vadim
http://brandon.dimcheff.com/2018/02/rainbow-deploys-with-kubernetes/ если совсем кратко
Anton
блять, мимо
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
лол
Rainbow
тогда норм будет
я понимаю и кажется это простое решение и должен быть image готовый под это, про это и спрашивал изначально.
Rainbow
можно server snipet (вроде) написать на ingress кажется и проксить самого себя. Но хотелось бы volume монтировать под это.
Andor
можно кастом шаблон для ингресса всегда сделать
Andor
https://github.com/kubernetes/ingress-nginx/issues/739 вон тут предлагают так и сделать
Andor
Andor
и цвет прямо в графану выводить!
Andor
@alexesDev https://stackoverflow.com/questions/47135256/kubernetes-nginx-ingress-controller-caching-static-assets
Vadim
Andor
кажется не очень сложно
G72K
G72K
(в теории)
Rainbow
нужно тестить, до конца не понимаю
G72K
При отдаче страницы по http2 сервер передаст браузеру и другие ассеты , они осядут в кэше и когда понадобятся к серверу никто не пойдет
Andor
угу, только бекенд должен как-то сообщить что надо пушить в клиента
G72K
Прям в ингресс контроллере можно, значение взять из аннотаций
Andor
а он откуда узнает?
Andor
ну смысле оно же может быть разное для разных урлов
G72K
(Имхо nginx не поддерживает http2 до бекендов , так что вряд ли получится этим с бекенда рулить)
Andor
ваще не очень понимаю как этот пуш работает
Andor
у тебя в одном урле один набор ассетов, а в другом - другой
Andor
а потом новая версия приложения вышла и всё поменялось
Andor
ты каждый раз будешь ингресс перенастраивать?
G72K
(ingress != Ingress controller если вдруг о разных вещах говорим)
G72K
https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push
Andor
как всё было просто во времена сайтиков с пхп
Andor
@rossmohax разработчик не хочет ничего знать, он хочет раздеплоить новую версию контейнера
а так придётся брать чувака который шарит как настроить ингрессы
G72K
Они и не должен ничего знать. CI пайплайн сам все может сделать
G72K
Понять что это деплой с ассетами, заглянуть в контейнер взять имена, прописать в ingress аннотации
Andor
ну технически это конечно возможно
Andor
чтобы всё само
Andor
да, ты прав, вполне норм тема
Andor
пойду в прод хуярить :)
G72K
Можно попросить разработчиков при билде оставлять артефакт с именами ассеты. Можно http2_push_preload заюзать тогда nginx вообще все сам
G72K
(но тогда это будет работать только на первом уровне, т.е. со страницы index.html)
G72K
А не, оно же через header (https://blog.cloudflare.com/http-2-server-push-with-multiple-assets-per-link-header/) вообще отлично - nginx с ассетами сам может сказать что предзагрузить
G72K
Т.е. можно рулить с бекенда