Как работать со статическими файлами при балансировке?
Допустим у меня есть 3 сервера, все на nodejs. 2 из них используются для общения с клиентом, 1 - для фоновых скриптов и тд. Какими средствами можно добиться того, чтобы я обновлял статические файлы на фоновом сервере и 2 других сразу же начинали отсылать клиентам новую статику.
Это точно можно реализовать через proxy_pass (location /static/?), но нагрузка на фоновый сервер будет , наверное, большая.
Запроксируйте на "двух других" урлы к статике через фоновый с кэшем - тогда они скачают файл с него всего по одному разу, положат его в кэш и затем будут отдавать из него.
Разумеется, при изменении файлов нужно менять на странице урл к нему, например, с помощью аргумента с версией.
В распределённых системах статика отдаётся из отдельного хранилища. Как правило это называется object storage. Сервера в таких системах используются только для вычислительных мощностей. Если же вы пишете свой object storage то там очень много различного вида очередей и репликаций, а так же распределённых key-value хранилищ