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... выглядит также грязно, если вы спросите меня.