- apache + mod_rpaf + .htaccess, HaMiL, 17:10 , 02-Окт-08 (1)
Мне проще перекопить нашу статью с кор.википедии. На ней не один сервер сейчас работает :)) ===============================================================================Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2, нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах. Чтоб избавится от неудобства необходимо лишь доставить модуль mod_rpaf2 к Apache 2.x.x [root@server /]# whereis mod_rpaf2 mod_rpaf2: /usr/ports/www/mod_rpaf2 [root@server /]# cd /usr/ports/www/mod_rpaf2 Дальше стандартно: [root@server /]# make install clean В httpd.conf (конфиг файл Apache) ищем строку: #LoadModule rpaf_module libexec/apache2/mod_rpaf.so Де-коментим строку (путь к .so файлу может отличаться) Далее в тот-же файл httpd.conf в самый низ дописываем 2 строки RPAFproxy_ips 127.0.0. RPAFEnable On Первая строка - это IP прокси (может быть белым IP адресом), вторая - говорит Apache, что rpaf нужно использовать. Что делает rpaf? Он из заголовка X-Forwarded-for делает REMOTE_ADDR. Собственно остается в конфиге nginx’а в разделе server (виртуального хоста, не в location'e Proxy-преедачи) дописать такие строки: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; Далее перезагружаем Apache и nginx [root@server /]# apachectl restart [root@server /]# /etc/rc.d/nginx restart ========================================= Всё.
- apache + mod_rpaf + .htaccess, sofree, 17:25 , 02-Окт-08 (2)
>Мне проще перекопить нашу статью с кор.википедии. На ней не один сервер >сейчас работает :)) >=============================================================================== > >Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2, >нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах.копипастить не надо. Сам не одну статью прочёл про это. Повторюсь, что это всё уже сделано и mod_rpaf установлен и ИПы нормально обрабатываются - и в скриптах php и в access_log Apache. А не работает в .htaccess - allow, deny директивы для ip адресов. Сами попробуйте, если у Вас apache 2.2 и mod_rpaf - положите .htaccess файл где пропишите deny from [ваш ip]. Опять таки, если к backend`у обратиться "напрямую" http://ext_ip:port, то .htaccess нормально обрабатывается... Поэкспериментируйте. У меня такой баг имеет место.
- apache + mod_rpaf + .htaccess, Alex, 15:37 , 13-Окт-08 (3)
>Сами попробуйте, если у Вас apache 2.2 и mod_rpaf - положите .htaccess >файл где пропишите deny from [ваш ip]. >Опять таки, если к backend`у обратиться "напрямую" http://ext_ip:port, то .htaccess нормально обрабатывается... >Поэкспериментируйте. У меня такой баг имеет место. На 2.0 такая же проблема. Вы как-нибудь решили???
- apache + mod_rpaf + .htaccess, sofree, 22:23 , 13-Окт-08 (4)
>>Сами попробуйте, если у Вас apache 2.2 и mod_rpaf - положите .htaccess >>файл где пропишите deny from [ваш ip]. >>Опять таки, если к backend`у обратиться "напрямую" http://ext_ip:port, то .htaccess нормально обрабатывается... >>Поэкспериментируйте. У меня такой баг имеет место. > >На 2.0 такая же проблема. >Вы как-нибудь решили??? Нет, не решил. Зато выяснилось, что этот баг имеет место. Думаю, автору mod_rpaf надо показать данный "баг"
- apache + mod_rpaf + .htaccess, qwerty, 16:47 , 14-Окт-08 (5)
Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан внутри httpd.conf
- apache + mod_rpaf + .htaccess, sofree, 20:12 , 14-Окт-08 (6)
>Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан >внутри httpd.conf А можно с .htaccess попробовать? Всего лишь маленький файлик...
- apache + mod_rpaf + .htaccess, qwerty, 11:51 , 28-Окт-08 (7)
>>Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан >>внутри httpd.conf > >А можно с .htaccess попробовать? Всего лишь маленький файлик... Работает нормально, Order deny,allow Deny from all Allow from 127.0.0.1 172.16.0.4 пускает только с 172.16.0.4
- apache + mod_rpaf + .htaccess, sofree, 00:31 , 31-Дек-08 (8)
>[оверквотинг удален] >> >>А можно с .htaccess попробовать? Всего лишь маленький файлик... > >Работает нормально, > >Order deny,allow >Deny from all >Allow from 127.0.0.1 172.16.0.4 > >пускает только с 172.16.0.4 Появилась возможность проверить баг. И так локальная сеть, Apache/2.2.10 (Fedora core 10 rus), ip=10.1.1.1 на котором крутится апач. Апач висит на 8080 (бэкэнд), а на 80 слушает nginx (фронтэнд) И так: [root@fc test]# cat /var/www/html/test/.htaccess Order deny,allow Deny from all Allow from 10.1.1.3 Комп, с которого запрашиваю - 10.1.1.3. Случай 1. http://10.1.1.1/test/ Forbidden You don't have permission to access /test/ on this server. Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 80 Лог: 10.1.1.3 - - [31/Dec/2008:00:28:28 +0300] "GET /test/ HTTP/1.0" 403 281 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12" Случай 2. http://10.1.1.1:8080/test/ Index of /test [ICO] Name Last modified Size Description [DIR] Parent Directory - Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 8080 Лог: 10.1.1.3 - - [31/Dec/2008:00:29:12 +0300] "GET /test/ HTTP/1.1" 200 688 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12" Прихожу к выводу, что баг прогрессирует!
- apache + mod_rpaf + .htaccess, Ярослав, 20:32 , 31-Июл-09 (9) +1
А у меня получилось победить эту проблему http://binblog.ru/2009/07/apache-mod_rpaf-htaccess/ >[оверквотинг удален] >http://10.1.1.1:8080/test/ >Index of /test >[ICO] Name Last modified Size Description >[DIR] Parent Directory - >Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 8080 >Лог: 10.1.1.3 - - [31/Dec/2008:00:29:12 +0300] "GET /test/ HTTP/1.1" 200 688 "-" >"Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12" > > >Прихожу к выводу, что баг прогрессирует!
- apache + mod_rpaf + .htaccess, sofree, 01:27 , 01-Авг-09 (10)
- apache + mod_rpaf + .htaccess, vinzz, 09:15 , 15-Окт-09 (11)
>>А у меня получилось победить эту проблему >> >>http://binblog.ru/2009/07/apache-mod_rpaf-htaccess/ >> > >Вот бы хорошо, чтобы автор мода >http://stderr.net/apache/rpaf/ >обратил внимание на патч и подправил исходники. этот патч решил одну проблему, но добавил другую: теперь в конструкциях наподобие "header( 'Location: /newpath/' );" апачь возвращает не domain.com/newpath, а МОЙ-IP-АДРЕС/newpath МОЙ-IP-АДРЕС - это ип с которого коннект, именно клиентского компьютера на котором открыт браузер. идеи?
- apache + mod_rpaf + .htaccess, angelina, 11:06 , 10-Дек-09 (12)
>этот патч решил одну проблему, но добавил другую: >теперь в конструкциях наподобие "header( 'Location: /newpath/' );" апачь возвращает не domain.com/newpath, >а МОЙ-IP-АДРЕС/newpath > >МОЙ-IP-АДРЕС - это ип с которого коннект, именно клиентского компьютера на котором >открыт браузер. идеи? это не поможет? mod_realip http://sysoev.ru/mod_realip/
- apache + mod_rpaf + .htaccess, Avari, 21:21 , 21-Окт-10 (13)
> это не поможет? mod_realip http://sysoev.ru/mod_realip/Поможет только тем, у кого апач 1.3. О чём вполне ясно написано у Сысоева. Для апача2 только mod_rpaf. Лично я категорический сторонник apache2.
- apache + mod_rpaf + .htaccess, Kirill, 11:13 , 22-Окт-10 (14)
>[оверквотинг удален] >>> >> >>Вот бы хорошо, чтобы автор мода >>http://stderr.net/apache/rpaf/ >>обратил внимание на патч и подправил исходники. > этот патч решил одну проблему, но добавил другую: > теперь в конструкциях наподобие "header( 'Location: /newpath/' );" апачь возвращает не > domain.com/newpath, а МОЙ-IP-АДРЕС/newpath > МОЙ-IP-АДРЕС - это ип с которого коннект, именно клиентского компьютера на котором > открыт браузер. идеи?а этот глюк исправили? нашел кто-нибудь как исправить?
- apache + mod_rpaf + .htaccess, baddan, 14:56 , 21-Апр-11 (15)
> а этот глюк исправили? > нашел кто-нибудь как исправить?на debian работает Server version: Apache/2.2.9 (Debian) Server built: Dec 11 2010 21:34:00 nginx version: nginx/0.6.32 на CentOS отказывается Server version: Apache/2.2.3 Server built: Jan 31 2011 17:50:30 nginx: nginx version: nginx/1.0.0
REMOTE_ADDR везде коректно правится. в логах тоже казывается правильный ip, но в centos не работает, в debian работает. в обоих практически одинаково настроены сайты. Видимо в 2.2.9 есть какието изменения которые исправляют проблему.
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, SatanaClause, 13:36 , 09-Авг-11 (16)
Добрый день,только что наткнулся на эту проблему. Смотрю ничего не изменилось c того времени. .htaccess с кодом не работает order deny,allow deny from all allow from 111.111.111.111 Решение простое, заменить mod_rpaf на mod_extract_forwarded 1. инсталируем EPEL из http://fedoraproject.org/wiki/EPEL http://download.fedoraproject.org/pub/epel/5/i386/epel-relea... 2. инсталируем mod_extract_forwarded yum install --enablerepo=epel mod_extract_forwarded.i386 4. коректируем конфиг /etc/httpd/conf.d/mod_extract_forwarded.conf по сути он стандартный, только меняем значени MEFaccept на нужное MEFaccept 127.0.0.1 все работает. :) >[оверквотинг удален] > deny from all > и соединяюсь к nginx (а он в свою очередь к apache) через > http://external_ip/ - получаю страничку! Нету никакого Forbidden!.. > Т.о., прихожу к выводу что mod_rpaf не работает в конструкциях .htaccess и > передаёт ip frontend`а (в моём случае 127.0.0.1). > Поискал в инете, нашёл только один подобный случай для настроек виртуал хоста: > http://www.apsis.ch/pound/pound_list/archive/2007/2007-01/11... > Кто-нибудь проверьте пожалуйста на практике, может у меня где-то ошибка. > Есть ли какие-нибудь решения? Может стоит автору rpaf обратить внимание на такой > "баг".
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, AL, 15:43 , 02-Мрт-12 (17) +1
Вы неправильно задаёте конструкцию Order. Последовательность должна быть другой и после запятой недолжно быть пробелов.Правильно так: Order Deny,Allow Deny From all Allow From 10.1.1.1 и всё работает как надо. Для справки. Как обрабатываются эти дериктивы: Order Allow,Deny Сперва, проверяются все директивы Allow; по крайней мере одна должна соответствовать, или запрос отвергается. Далее, провеляются все директивы Deny. Если какие-либо соответствуют, то запрос отвергается. В конце, любой запрос, который не соответствует директиве Allow или Deny отвергается по умолчанию. Order Deny,Allow Сперва, проверяются все директивы Deny; если какая-либо соответствует, то запрос отвергается, если нет соответствия в директиве Allow. Любой запрос, который не соответствует директиве Allow или Deny пропускается.
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, Alan, 15:49 , 02-Мрт-12 (18) –1
Спасибо, но тут не в этом дело, mod_rpaf просто неподдерживает этого, так же как и аторизации. Рещение - mod_extract_forwarded.
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, ALex_hha, 01:23 , 09-Мрт-12 (19)
> Спасибо, но тут не в этом дело, mod_rpaf просто неподдерживает этого, так > же как и аторизации. Рещение - mod_extract_forwarded.# cat .htaccess Order Deny,Allow Deny From all Allow From xxx.xxx.238.231 xxx.xxx.157.114 - - [08/Mar/2012:23:17:12 +0200] "GET /test/ HTTP/1.0" 403 283 "-" "Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" xxx.xxx.238.231 - - [08/Mar/2012:23:17:27 +0200] "GET /test/ HTTP/1.0" 200 61688 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" [Thu Mar 08 23:17:12 2012] [error] [client xxx.xxx.157.114] client denied by server configuration: /var/www/vhosts/domain.com.ua/test/ CentOS-6.2 # httpd -v Server version: Apache/2.2.15 (Unix) Server built: Feb 13 2012 22:31:42 # apachectl -t -D DUMP_MODULES | grep rpaf Syntax OK rpaf_module (shared) # nginx -v nginx version: nginx/0.8.54 ЧЯДНТ?
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, alan, 01:42 , 09-Мрт-12 (20)
Возможно mod_rpaf или apache версия играет роль, мы для семя пометили модуль как ненадежный и отказались от его использования. mod_extract_forwarded http://www.openinfo.co.uk/apache/index.html на боевый машинах с хостингом используется пол года, проблем нет, версии разные.>[оверквотинг удален] > CentOS-6.2 > # httpd -v > Server version: Apache/2.2.15 (Unix) > Server built: Feb 13 2012 22:31:42 > # apachectl -t -D DUMP_MODULES | grep rpaf > Syntax OK > rpaf_module (shared) > # nginx -v > nginx version: nginx/0.8.54 > ЧЯДНТ?
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, ALex_hha, 02:20 , 09-Мрт-12 (21)
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, PavelR, 17:01 , 16-Мрт-12 (22)
> Возможно mod_rpaf или apache версия играет роль, мы для семя пометили модуль > как ненадежный и отказались от его использования. mod_extract_forwarded Версия mod_rpaf играет роль. Используйте 0.6 или патченную 0.5.
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, PavelR, 00:10 , 30-Мрт-12 (23)
- Не работает allow, deny, когда apache + mod_rpaf + .htaccess, baddan, 18:25 , 04-Май-12 (24)
debian 6.0модуль mod_extract_forwarded не удалось скомпилить и подключить по нормальному иза ошибки какойто с прокси, в принцыпе там в исходнике правится #define, но почемуто после этого не стало работать, то что работало в centos. вот что получилось и работает. rpaf.conf <IfModule mod_rpaf.c> RPAFenable On RPAFsethostname On RPAFproxy_ips 184.xx.xx.xxx 127.0.0.1 </IfModule> Nginx. 1.2 site.net server { <------>listen 80; <------>server_name site.net *.site.net; <------>root /home/www/tube/site.net/public_html; #<----->access_log /home/www/tube/site.net/log/ng-acc.log; <------>error_log /home/www/tube/site.net/log/ng-err.log; location / { proxy_pass http://184.xx.xx.xx:81; proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 500m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 900; proxy_read_timeout 900; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; charset off; track_uploads proxied 30s; } location ^~ /contents/videos/ { flv; root /home/www/tube/site.net/public_html; internal; } location ^~ /contents/videos_sources/ { root /home/www/tube/site.net/public_html; internal; } location ^~ /contents/albums/sources/ { root /home/www/tube/site.net/public_html; internal; } location ^~ /contents/albums/main/700x525/ { root /home/www/tube/site.net/public_html; internal; } location ~* ^.+\.(gif|jpg|mpg|mp3|mpeg|avi)$ { valid_referers none blocked site.net *.site.net; if ($invalid_referer) { return 403; } root /home/www/tube/site.net/public_html; } location ^~ /admin/include/get_upload_status.php { <------>report_uploads proxied; #<----->upload_progress_header hash; <------>upload_progress_jsonp_output; } } -------------------------------- Order Allow,Deny с пробелом без пробелом в обратном порядке и вовсе без ordera обрабатывается одинаково. всем удачи.
|