Мне нужно настроить динамические перенаправления. Например, пользователь открывает ссылку: http://www.example.com/2/3/4/ и перейдите на страницу по следующему адресу: http://www.example2.pl/something.
Я знаю о RewriteMap, но мне нужно что-то, что не требует перезапуска nginx, это быстро, просто и легко использовать с sftp (без базы данных на сервере).
Моя идея состоит в том, чтобы поместить файлы с URL-адресами внутрь и настроить nginx для использования этого содержимого файла - это приятно для меня, потому что я могу легко сделать это через sftp.
Как мне добиться этого в nginx?
Моя вторая идея - вернуть этот файл пользователю и использовать перенаправление javascript. Я предпочитаю первое решение, поэтому скажите мне, как читать запрошенное содержимое файла и перенаправлять на URL-адреса внутри.
Может быть, есть еще какие-то решения, например DNS, скажите, пожалуйста, что будет лучше всего.
Что вы можете сделать, так это загрузить файлы конфигурации, включая location
директивы в конкретный каталог. Этот каталог будет включен (т.е. через include yourDir/*.conf
) в твоем server
конфигурация.
Однако вам нужно будет отправить сигнал мастеру nginx, чтобы перезагрузить конфигурацию. @MichaelHampton прав в том, что вам не нужно начать сначала сервер. Перезагрузить конфигурацию сервера без простоя можно, выполнив service nginx reload
команда или kill -SIGHUP <nginx master process ID>
.
В nginx нет функции «постоянное наблюдение за каталогом + перезагрузка при изменении файловой системы». Вам нужно будет написать сценарий (например, с помощью Lua), но это все равно не рекомендуется. Вы можете создать задачу cron для регулярной перезагрузки конфигурации nginx ... выглядит также грязно, если вы спросите меня.