Подтвердить что ты не робот

Белый список Nginx Ip

Я хочу настроить прокси-сервер nginx только для того, чтобы определенные IP-адреса могли получить к нему доступ.

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

Короче говоря, пользователь с белыми списками сможет использовать мой прокси-сервер, но если по какой-либо причине пользовательский IP-адрес изменится, пользователь все равно может войти на мой сайт и обновить этот белый IP-адрес.

Где мне нужна помощь

Есть ли способ, чтобы nginx читал белый список IP из внешнего источника, из чего-то вроде htaccess или mysql? Если да, то какой будет лучший формат для этого списка, чтобы его можно было легко связать и автоматически обновить? Я планирую сделать сайт профессионально построенным, чтобы при входе пользователей в свои учетные записи белый список автоматически обновлялся. Поэтому мне хотелось бы, чтобы мой белый список был в оптимальном формате для дизайнера, с которым он работал, чтобы упростить интеграцию белого списка с учетными записями пользователей.

4b9b3361

Ответ 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 во внешнее местоположение.

Оба этих подхода по-прежнему потребуют определенных усилий с вашей стороны. Я не верю, что решение для удаления уже доступно для ваших конкретных целей.