Ответ 1
Я знаю, что вы можете решить эту проблему двумя способами.
-
Разрешить список в отдельной конфигурации: работает со всеми распространенными установками NginX
Вы можете поместить все инструкции allow в простой текстовый файл на сайт, содержащий ничего, кроме разрешений. Включите это под блоком клиентского сервера. Используйте скрипты по мере необходимости, чтобы изменить список. Наконец, перезагружайте (не перезапускайте) конфигурацию nginx каждый раз, когда вы обновляете список разрешений. Это может выглядеть следующим образом:
cat /var/www-allow/client1-allow.conf allow 192.168.1.1; allow 10.0.0.1; cat /etc/nginx/sites/client1.conf ... server { include /var/www-allow/client1-allow.conf; deny all; } echo Test NginX configuration nginx -t echo Reload NginX configuration (**adjust for your setup**) service nginx reload
-
Использовать встроенный Lua: Требуемый пользовательский компилятор NginX
Перекомпилируйте NginX из источника с встроенным модулем добавления Lua для сторонних разработчиков. Используйте lua script, чтобы активно отрицать неподдерживаемые IP-адреса. См. Второй пример в
access_by_lua
. Существует множество способов использования добавления. Я предлагаю использоватьaccess_by_lua_file
, чтобы поместить lua script во внешнее местоположение.
Оба этих подхода по-прежнему потребуют определенных усилий с вашей стороны. Я не верю, что решение для удаления уже доступно для ваших конкретных целей.