борту nginx версии 1.24.0. (1 vCPU, 2GB RAM)
Перед контейнерами стоит балансировщик, который делит запросы между этими контейнерами. (Балансировщик не умеет кеш)
К контейнерам подключено общее сетевое хранилище.
В это сетевое хранилище nginx складывает кеш.
Кеш настроен как на fastcgi так и на proxy.
Каждые 10-30 запросов в логах nginx-error вижу критическую запись
cache file "/var/nginx_cache/fastcgi_cache/2/d0/6cb24eeacd457ddd9bd38ae33eabfd02" has too long header, client: 172.31.22....., server: , request: "POST /api/path/path HTTP/1.1", host: "site.site"
Ошибка связана с fastcgi кешем, но при этом в ответ, в браузере, где должен получить proxy кеш - я не получаю кешированные proxy данные. Данные я получаю не из кеша.
При этом если я буду посылать запросы повторно (просто обновляю страницу) - из этого же контейнера я получу уже данные из кеша.
nginx -T = https://pastebin.com/y8DezS1M
Как заставить nginx работать так как хочется?))
Ты post кэшируешь?
404 на конфиг. кешировать post идея плохая, если что
Изменил ссылку, идет модерация, сколько она будет длиться? А как лучше поступить? Фронт шлет post запросы на генерацию страницы. Чтобы ускорить генерацию proxy кеша, пришлось делать fastcgi кеш. Т.к. запросы повторяющиеся
Пока модерация идет на pastebin, выложил в гит https://gist.github.com/Atmden/70226c66a7ac06e4dc4fe3837ed63d11
хотя тут написано, что "nginx не кеширует"
человек забыл сформулировать, что не кэшируются те запросы, что имеют ошибку в логах
Обсуждают сегодня