поддержание перенаправлений в nginx из внешнего источника

Немного поздно, чтобы сделать теперь, так как Ваша машина возросла и выполнение, но в следующий раз необходимо рассмотреть использование vdisks для установки на.

В основном Вы устанавливаете 2 008 R2 на единственном файле VHD на Вашем загрузочном диске и затем копируете тот файл (через xcopy и т.д.) к Вашему резервному диску. Замечательная особенность этой установки - то, что можно использовать диски differencing, которые отчасти похожи на снимок для аппаратных средств.

Лучший из всего все, в чем Вы нуждаетесь, доступно бесплатно от Microsoft как часть инструментария WAIK.

Вот ссылка на то, как настроить ее: Виртуальные жесткие диски в Windows Server 2008 R2 и Windows 7

15
задан 9 October 2015 в 06:28
1 ответ

Не существует встроенного способа должным образом изолировать такую ​​конфигурацию перезаписи. Вы можете использовать три подхода.

Модуль карты include

Модуль карты позволяет включать сопоставления из отдельного файла. Nginx по-прежнему необходимо перезагрузить после изменения файла, и файл сопоставления должен быть синтаксически правильным, но он ограничивает то, что можно сделать.

nginx.conf :

map $uri $new {
    include /etc/nginx/marketing.map;
}

server {
    ...
    if ($new) {
        rewrite ^ $new redirect;
    }
    ...
}

marketing.map :

/about  /company/about-us;
~^/people/(?<person>.*)$    /company/people/$person;

Предварительная конфигурация

Первый - это написать сценарий, который преобразует перенаправления из определенного вами формата в конфигурацию nginx. Например, учитывая список перенаправлений, разделенных пробелами:

/foo/(.*) /bar/$1

и сценарий:

#!/bin/sh
while read SOURCE DEST; do
    echo "rewrite $SOURCE $DEST permanent;"
done < redirects.txt > redirects.conf

, чтобы сформировать следующую конфигурацию:

rewrite /foo/(.*) /bar/$1 permanent;

Затем вы захотите запустить nginx -t для всей конфигурации чтобы проверить это s действительны перед перезагрузкой.

Обработка на лету

Второй вариант - использовать ngx_lua , ngx_perl или ngx_js для реализации чтения и обработка вашей конфигурации перенаправления в самом nginx. Например, директива rewrite_by_lua позволяет вам выполнить код Lua для создания перезаписи. Однако вы должны быть осторожны с преформой, поскольку вы будете интерпретировать код для каждого запроса.

24
ответ дан 2 December 2019 в 20:50

Теги

Похожие вопросы