На одном из моих серверов есть довольно стандартный набор софта - nginx для фронтэнда и кеширования статики, apache для обработки логики php. Кто работал с такой схемой, тот знает, что для того, чтобы apache знал IP-адрес пользователя в этой схеме (когда nginx проксирует запросы), то необходимо поставить дополнительный модуль mod_rpaf2.
Весь софт у меня был установлен и настроен, Apache нормально распознавал IP пользователя и все было замечательно, пока я не попробовал в .htaccess запретить доступ по IP для одного бота, который спамил в комментах. Благо у него всегда один и тот же адрес. И вот я по старой схеме стал писать в .htaccess
И этот способ не сработал. А не сработал из-за какого-то странного бага в модуле mod_rpaf, о котором знают все, включая разработчиков, но вот исправили они баг или нет - пока что неизвестно.
Немного погуглил и нашел интересный способ решения задачи. В .htaccess пишем:
Этот код закроет доступ к сайт для конкретного IP-адреса, а всем остальным доступ будет все еще открыт.
Весь софт у меня был установлен и настроен, Apache нормально распознавал IP пользователя и все было замечательно, пока я не попробовал в .htaccess запретить доступ по IP для одного бота, который спамил в комментах. Благо у него всегда один и тот же адрес. И вот я по старой схеме стал писать в .htaccess
Order Allow,Deny
Allow from all
Deny from 123.456.78.9
И этот способ не сработал. А не сработал из-за какого-то странного бага в модуле mod_rpaf, о котором знают все, включая разработчиков, но вот исправили они баг или нет - пока что неизвестно.
Немного погуглил и нашел интересный способ решения задачи. В .htaccess пишем:
SetEnvIf Remote_Addr "^123\.456\.78\.9" realremoteaddr
Order Allow,Deny
Allow from all
Deny from env=realremoteaddr
Этот код закроет доступ к сайт для конкретного IP-адреса, а всем остальным доступ будет все еще открыт.
1 коммент.:
А можно сменить rpaf на mod_realip или mod_extract_forwarded
Отправить комментарий