
mxHeadless
REST API gateway для headless-фронтендов на MODX 3. Ресурсы, объекты, OpenAPI, API keys и OAuth
- MODX 3
- PHP 8.1


Настройка mxheadless_trusted_proxies: список IP через запятую. Значения обрезаются от пробелов, перенос строки и CIDR не читаются.
Middleware TrustedProxyMiddleware определяет client_ip для атрибута запроса:
REMOTE_ADDR | X-Forwarded-For | client_ip |
|---|---|---|
| В списке | Есть | Первый адрес из списка (левый) |
| В списке | Нет | REMOTE_ADDR |
| Не в списке или список пуст | Любой | REMOTE_ADDR, заголовок игнорируется |
Пустой список безопасен при прямом подключении: заголовок от клиента не попадёт в учёт.
client_ip используется только в rate limit: ключ счётчика считается как sha1(identity + ':' + ip). В журнал mxheadless_api_log IP не пишется, колонки для него в таблице нет, поэтому смена прокси на аудит не влияет.
X-Forwarded-For. X-Forwarded-Proto и X-Forwarded-Host игнорируются, схема и хост URL собираются из $_SERVER['HTTPS'] и HTTP_HOST. HTTPS настраивайте на reverse proxy.X-Forwarded-For должен быть реальным IP клиента, иначе rate limit посчитает запросы по прокси.203.0.113.10,203.0.113.11