Nginx перенаправление на URL, записанный в запрошенном файле

Мне нужно настроить динамические перенаправления. Например, пользователь открывает ссылку: http://www.example.com/2/3/4/ и видит страницу по следующему адресу: http://www.example2.pl/something.

Я знаю о RewriteMap, но мне нужно что-то, что не требует nginx для перезапуска, это быстро, просто и легко в использовании с sftp (без базы данных на сервере).

Моя идея состоит в том, чтобы помещать файлы с URL-адресами внутрь и настраивать nginx для использования этого содержимого файла - мне это приятно, потому что я легко могу сделать это через sftp.

Как мне добиться этого в nginx?

Моя вторая идея - вернуть этот файл пользователю и использовать перенаправление JavaScript. Я предпочитаю первое решение, поэтому, пожалуйста, скажите мне, как прочитать запрошенное содержимое файла и перенаправить на URL-адреса внутри.

Может быть, есть и другие решения, такие как DNS, скажите, пожалуйста, что будет лучше.

1 ответ

Решение

Что вы можете сделать, это загрузить файлы конфигурации, включая location директивы для конкретного каталога. Этот каталог будет включен (т.е. через include yourDir/*.conf) в вашем server конфигурации.

Вам нужно будет подать сигнал мастеру nginx, чтобы перезагрузить конфигурацию. @MichaelHampton прав в том, что вам не нужно перезагружать сервер. Перезагрузка конфигурации сервера без простоя может быть выполнена путем выдачи service nginx reload команда или kill -SIGHUP <nginx master process ID>,

В nginx нет функции "постоянный просмотр каталога + перезагрузка при изменении файловой системы". Вам нужно будет написать его (например, с Lua), но это все равно не рекомендуется. Вы можете создать задачу cron для регулярной перезагрузки конфигурации nginx... выглядит также грязно, если вы спросите меня.

Другие вопросы по тегам