> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/knowledge-base/nastroiki-sistemy/system-settings/geoip/geoip-cache-and-resilience.md).

# Кеш и отказоустойчивость GeoIP

Кеш GeoIP, режим только сохранённых данных, тайм-ауты и защита от сбоев провайдеров

Кеш ускоряет повторные проверки и сокращает обращения к провайдерам. Отказоустойчивость ограничивает влияние медленного или сбойного внешнего источника на клиентский сайт и панель.

Точный путь:

**«Настройки» — «Общие настройки» — «Дополнительно» — «GeoIP»**

Требуется право **«Настройки GeoIP» из блока «Настройки»**.

## Вкладка «Кеш»

| Параметр                              | Назначение                                                   | Обычная рекомендация                   |
| ------------------------------------- | ------------------------------------------------------------ | -------------------------------------- |
| «Кешировать результаты (быстрее)»     | Повторно использует ранее найденное местоположение           | Включить                               |
| «Дополнительное быстрое кеширование»  | Хранит последние результаты для текущих процессов приложения | Включить                               |
| «Политика кеширования»                | Определяет, результаты каких IP можно сохранять              | «Только публичные IP-адреса»           |
| «Хранилище кеша»                      | Выбирает подготовленное серверное хранилище                  | «Основное хранилище приложения»        |
| «Служебный префикс записей»           | Отделяет записи GeoIP от другого кеша                        | Не менять без плана миграции           |
| «Срок хранения найденного результата» | Как долго использовать успешный результат                    | Менять только по политике актуальности |
| «Срок хранения пустого результата»    | Как долго не повторять безрезультатный запрос                | Держать короче успешного результата    |
| «Время блокировки запроса»            | Не даёт нескольким процессам одновременно проверять один IP  | Оставить штатное значение              |
| «Лимит быстрого кеша»                 | Ограничивает число последних записей в памяти процесса       | Не увеличивать без контроля памяти     |

Политика **«Все IP-адреса»** может сохранять внутренние адреса, а **«Не сохранять результаты»** увеличивает нагрузку и расход лимита внешних сервисов. Используйте их только для отдельного диагностического сценария.

## Режим только сохранённых результатов

Переключатель **«Временно не обращаться к провайдерам»** находится на вкладке «Основное». Он полезен при аварии внешних сервисов или во время их обслуживания:

* известный IP может получить ранее сохранённый результат;
* новый IP останется без данных о местоположении;
* провайдеры не вызываются, даже если отмечены как включённые;
* поведение без результата определяется полем «Если местоположение не удалось определить».

Не оставляйте этот режим включённым после восстановления провайдеров. На вкладке «Диагностика» отображается отдельное предупреждение о работе только с кешем.

## Автоматическая пауза сбойного источника

На вкладке **«Отказоустойчивость»** переключатель **«Временно отключать сбойный источник»** включает защиту от серии ошибок. Когда источник достигает порога, система временно пропускает его, продолжает работу со следующими провайдерами и пробует снова после паузы.

Связанные параметры:

* **«Порог ошибок»** — сколько ошибок подряд открывает временную паузу;
* **«Окно ошибок»** — за какой период они учитываются;
* **«Длительность паузы»** — когда источник можно попробовать снова.

Слишком низкий порог будет часто исключать источник из-за единичных сетевых сбоев. Слишком высокий заставит клиентов дольше ждать неисправный сервис. Меняйте эти значения только после сравнения диагностики нескольких инцидентов.

## Ограничения удалённых запросов

| Параметр                  | Что ограничивает                                          |
| ------------------------- | --------------------------------------------------------- |
| «Ожидание соединения»     | Время установления связи с IPLocate.io или IP2Location.io |
| «Ожидание полного ответа» | Полную длительность удалённого запроса                    |
| «Повторные попытки»       | Дополнительные обращения после первой ошибки              |
| «Задержка повтора»        | Паузу между повторными обращениями                        |

Увеличение ожидания может скрыть медленного провайдера, но одновременно замедлить страницу. Увеличение повторов повышает шанс получить ответ и расходует больше времени и лимита API.

## Записи об ошибках

Переключатель **«Ограничивать одинаковые предупреждения»** не скрывает разные ошибки. Он не позволяет одному повторяющемуся сбою заполнить журнал одинаковыми сообщениями. Поле **«Пауза между одинаковыми предупреждениями»** определяет, когда такое предупреждение можно записать снова.

## Проверка после изменения

{% stepper %}
{% step %}

### Зафиксируйте исходное состояние

На вкладке «Диагностика» запишите доступные провайдеры, состояние временных пауз и число записей быстрого кеша.
{% endstep %}

{% step %}

### Проверьте успешный результат

Дважды выполните один безопасный прикладной сценарий с тем же публичным IP. Не используйте для этой проверки кнопку «Проверить» на вкладке «Провайдеры»: она обращается к выбранному источнику напрямую и не проверяет общий кеш.
{% endstep %}

{% step %}

### Проверьте пустой результат

Используйте только безопасный тестовый адрес и убедитесь, что выбранное поведение без местоположения не блокирует лишние операции.
{% endstep %}

{% step %}

### Проверьте резервный источник

В тестовом окне подтвердите переключение со сбойного провайдера на следующий. После теста верните исходную доступность.
{% endstep %}

{% step %}

### Сверьте диагностику

Убедитесь, что временная пауза, время последнего успеха и состояние кеша соответствуют выполненным действиям. Если нужно доказать отсутствие повторного внешнего запроса, дополнительно используйте технический мониторинг или счётчик обращений в кабинете провайдера.
{% endstep %}
{% endstepper %}

Если после очистки или изменения политики нагрузка выросла, верните зафиксированные значения и проверьте объём повторных внешних запросов. Не увеличивайте тайм-ауты как первый способ исправления.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/knowledge-base/nastroiki-sistemy/system-settings/geoip/geoip-cache-and-resilience.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
