Не вдаваясь в подробности, у нас есть требования к следующему:
a) Запросите простой единственный столбец, результат одной строки из mysql.
б) Используйте эту переменную как часть модуля дополнительных заголовков, директивы add_header.
c) Если результаты не возвращены (например: количество строк 0), шаблон соответствует запросу uri ($ request_uri из того, что я помню?) и используйте результат отсюда.
г) В идеале кэшируйте эти данные где-нибудь на конце nginx, чтобы в будущих запросах можно было повторно использовать эти данные без накладных расходов mysql. Есть около 5 миллионов результатов, но после кеширования они всегда остаются неизменными.
Кто-нибудь когда-нибудь использовал nginx и lua, я предполагаю, что это будет лучший маршрут?
Есть ли другие рекомендуемые способы сделать это?
Это действительно то, что nginx не подходит для большинства платформ веб-приложений (например, php, python, ruby, asp.net и т. Д.). Nginx предназначен для очень прямой скорости, этот поиск в базе данных займет больше времени, чем большинство запросов nginx в реальном времени.
Итак, чтобы ответить на вопрос - обратный прокси-сервер с использованием nginx для выбранной вами платформы, создайте там волшебный перенаправитель. Если вы вернете его с правильными заголовками и настроите кеширование в nginx, вы все равно сможете воспользоваться этой частью nginx, чтобы снизить нагрузку на сервер приложений и т. Д.