Вернуться назад

Обработка Nginx в связке с Apache файла .htaccess

Обработка Nginx в связке с Apache файла .htaccess

При работе связки Nginx + Apache, требуется установка дополнительного модуля Apache, который позволит корректно передавать от Nginx к Apache реальный IP-адрес посетителя. В итоге получаем связку Nginx — mod_rpaf — Apache.

Достаточно давно была замечена проблема с обработкой ip в директивах Deny From (.htaccess или httpd.conf). Проблема заключается в том, что конструкция

Order Deny, Allow
Deny From all
Allow From 10.1.1.1

не разрешит доступ с IP 10.1.1.1 при обращении к порту 80, на который поступают все http-запросы. В нашей схеме, запросы на 80 порту обрабатывает Nginx и передает их Aapche, к примеру на порт 8080. Из-за бага mod_rpaf Allow From 10.1.1.1 не сработает, а все запросы будут получать ответ 403 Dorbidden. Аналогичная проблема и с Deny From 10.1.1.1.

 

Решение довольно простое. Мы будем использовать директиву SetEnvIf (подробности можно узнать в документации Apache: http://httpd.apache.org/docs/2.1/mod/mod_setenvif.html). Рабочий вариант будет выглядеть следующим образом:

SetEnvIf Remote_Addr ^10\.1\.1\.1 testrule
Order Deny,Allow
Deny from all
allow from env=testrule

Наше правило запретит доступ для всех, кроме ip 10.1.1.1


igel
Дата: 21 января 2019 г. в 21:38:06

Автор: igel