URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7499
[ Назад ]

Исходное сообщение
"Nginx: 'Client denied by server configuration error in Apache'"

Отправлено xtester , 26-Мрт-12 12:32 
Здравствуйте

Есть сайт который благополучно жил на серваке где Nginx (0.8) был установлен на обработку статики с проксированием динамики на Apache (2). Необходимо было сайт перенести на другой сервер. На новом сервере стоит Apache 2.2 + я поставил свежий Nginx. Сейчас на порту 80 живет Nginx который проксирует динамику Апачу на порт 8080.

Мне нужно закрыть директорию для доступа с определенных ip через htaccess.
На новом сервере с этим возникла проблема. Если я создаю в директории htaccess с директивами deny и allow то при попытке доступа к файлу
http://www.site.com/protected/1.php
вне зависимости от ip я получаю ошибку и запись в логах "Client denied by server configuration error in Apache".

При этом если обращаться к этому файлу напрямую через Apache
http://www.site.com:8080/protected/1.php
то htaccess отрабатывает правильно и пускает нужные ip не пропуская другие.

Ниже конфиг Nginx:
==========================
user  apache;
worker_processes  4;
error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    gzip_min_length 1024;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_comp_level 5;
    gzip_types    text/plain text/css
                  application/x-javascript text/xml
                  application/xml application/xml+rss
                  text/javascript image/x-icon;

    server {
    listen       80;
    server_name  www.site.com site.com 7.1.3.7;
    access_log  logs/host.access.log  main;

    # serve static files
    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
      root    /var/www/vhosts/www.site.com/httpdocs;
      proxy_set_header Range "";
      expires 30d;
    }

    # pass requests for dynamic content to Apache
    location / {
      proxy_redirect               off;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Range "";
      proxy_pass      http://7.1.3.7:8080;
    }
  }
==========================

Подскажите пожалуйста как это можно победить, я уже все локти искусал.


Содержание

Сообщения в этом обсуждении
"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено PavelR , 26-Мрт-12 13:53 
Модуль апача mod_rpaf-0.6 установлен ? Сконфигурирован ?

Можно не отвечать, я знаю ответ.


----

Не используйте 8080 порт на апаче. Используйте 127.0.0.1:80. При необходимости - 127.0.0.2:80 и т. д.


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 14:02 
> Модуль апача mod_rpaf-0.6 установлен ? Сконфигурирован ?

Да, установлен и настроен.
Ipшник определяется корректно


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено bulgakow , 26-Мрт-12 14:39 
>> Модуль апача mod_rpaf-0.6 установлен ? Сконфигурирован ?
> Да, установлен и настроен.
> Ipшник определяется корректно

кем определяется?
а что в  логе апача


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 14:49 
>>> Модуль апача mod_rpaf-0.6 установлен ? Сконфигурирован ?
>> Да, установлен и настроен.
>> Ipшник определяется корректно
> кем определяется?
> а что в  логе апача

В директории с htaccess лежит такой файл к которому я обращаюсь.

<?php
$ip = getenv('REMOTE_ADDR');
var_dump($ip);
?>

Он показывает верный айпишник при отсутствии директив allow/deny из htaccess.
Логи Апача не смотрел.


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено PavelR , 26-Мрт-12 13:56 
>proxy_set_header X-Real-IP  $remote_addr;
>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Абсолютно никакого резона выставлять _оба_ X-заголовка _нет_.
Один написал, все остальные бездумно повторяют....


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 14:03 
>>proxy_set_header X-Real-IP  $remote_addr;
>>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> Абсолютно никакого резона выставлять _оба_ X-заголовка _нет_.
> Один написал, все остальные бездумно повторяют....

Ок, но разве это решит проблему ?


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 14:33 
Ps - Аналогичная проблема рассматривалась здесь:
https://www.opennet.ru/openforum/vsluhforumID8/6014.html

"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 16:01 
Победил заразу. Проблема была с модулем RPAF который некорректно работает в некоторых случаях.
Лечится установкой патченого модуля отсюда:
https://github.com/discont/mod_realip2/blob/master/INSTALL.md

Всем спасибо :-)


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено PavelR , 26-Мрт-12 16:49 
> Ps - Аналогичная проблема рассматривалась здесь:
> https://www.opennet.ru/openforum/vsluhforumID8/6014.html

там рассматривался модуль версии 0.5. 0.6 работает корректно.


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено xtester , 26-Мрт-12 21:51 
>> Ps - Аналогичная проблема рассматривалась здесь:
>> https://www.opennet.ru/openforum/vsluhforumID8/6014.html
> там рассматривался модуль версии 0.5. 0.6 работает корректно.

У вас корректно, у других - не всегда:
http://www.lexa.ru/nginx-ru/msg20706.html
http://forum.searchengines.ru/showthread.php?t=272073


"Nginx: 'Client denied by server configuration error in Apache'"
Отправлено PavelR , 30-Мрт-12 00:02 
>>> Ps - Аналогичная проблема рассматривалась здесь:
>>> https://www.opennet.ru/openforum/vsluhforumID8/6014.html
>> там рассматривался модуль версии 0.5. 0.6 работает корректно.
> У вас корректно, у других - не всегда:
> http://www.lexa.ru/nginx-ru/msg20706.html
> http://forum.searchengines.ru/showthread.php?t=272073

Рассмотрим вторую ссылку:

>Заметил такую странную вещь, если есть .htaccess файл и я в корень сайта кладу например:
> order allow,deny
> allow from [ip с которого соединяюсь]
> deny from all
>
> Апач даёт  Forbidden, хотя казалось бы указано allow from [ip с которого соединяюсь]

В первой ссылке, если подняться к исходному сообщению, написано аналогичное:

>в .htaccess :
>Order Allow,Deny
>Deny From All
>Allow From 127.0.0.1
>Allow From 10.0.3.4
>Allow From 10.0.3.5
>Allow From 10.0.3.6
>
> .htaccess попадает какойто другой адрес и возникает 403

Так вот, как правильно расписано в https://www.opennet.ru/openforum/vsluhforumID8/6014.html#17

это является ожидаемым и верным поведением, и не зависит от наличия или отсутствия модуля rpaf.

Дай дураку .... он и разобъет, и руки порежет.