Назад | Перейти на главную страницу

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

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