2011-01-13 3 views
2

Моя цель состоит в том, чтобы разрешить доступ к прокси-серверу Apache 2.2 для IP-адресов только для зарегистрированных пользователей, в то же время отрицая все остальные IP-адреса.Динамическое обновление конфигурации Apache «разрешить с IP» без перезагрузки/перезагрузки?

В прокси-виртуальном хосте я успешно включил файл «разрешить», который динамически переписывается каждый раз, когда пользователь входит в систему или выходит из нее (добавляет IP-адрес зарегистрированных пользователей при удалении IP-адреса выведенных из системы пользователей). Однако для этого требуется грациозный перезапуск/перезагрузка Apache, и я хочу улучшить производительность, если я могу ... потому что, когда пользователь входит в систему и отправляется на главную страницу, иногда Apache находится прямо в середине перезапуска и выдает предупреждение «занято».

Я полагаю, что я мог бы отсрочить изящный перезапуск Apache на секунду или два, чтобы облегчить стресс при первоначальном входе в систему, но если есть способ избежать перезагрузки в целом, я бы очень хотел узнать о Это. Благодаря!

ответ

11

Однако это требует изящной перезагрузки/перезагрузки Apache принять эффект,

Пожалуйста, не делайте этого. Это не решение.

Используйте директиву RewriteMap от mod_rewrite от Apache (RewriteModule), чтобы получить динамический IP-черный список/белый список.

## WHITELIST IPS ## 
RewriteMap ipslist txt:/path/to/whitelist.txt 
RewriteCond %{REMOTE_ADDR} ^(.*)$ 
RewriteCond ${ipslist:%1|black} ^black$ [NC] 
RewriteRule (.*) - [F] 
+3

+1 эффективно перезаписываемый кеш rewriteMap сбрасывается при изменении mtime файла. – regilero

+0

+1 отличный ответ, но могу ли я заменить whitelist.txt на БД. @Sarwar Erfan – Networker

Смежные вопросы