Portál AbcLinuxu, 10. května 2025 06:14

Dotaz: Limit deny allow apache + nginx

18.10.2011 09:51 Roman
Limit deny allow apache + nginx
Přečteno: 482×
Odpovědět | Admin
Narazil jsem na problem a nevim si s nim rady.

Na serveru mi bezi apache + nginx jako proxy pro staticky content.

Vse funguje bez problemu, narazil jsem ovsem na problem kdy z nejakeho duvodu nefunguje omezeni pristupu do adresare pomoci .htaccesu:
<Limit GET POST>
   order deny,allow
   deny from all
   allow from xxx.xxx.xxx.xxx
</Limit>
Rewrite rules normalne v htaccessu funguji.. takze problem s .htaccessem jako takovem neni.

Problem je pouze s tim, ze server ted vubec nebere vpotaz allow from xxx.xxx.xxx.xxx, a IP je 100% spravna. Pokud na chvili vypnu nginx, a jedu jen pres apache tak vse funguje v poradku a adresar je pristupny pouze pro uvedenou IP, jak ale prepnu na kombinaci apache/nginx adresar je nepristupny pro zadnou IP vc. povolene. Chybi mi snad nejaky modul pri kompilaci nginxu? Muze to byt ngx_http_access_module? Diky za radu.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

MMMMMMMMM avatar 18.10.2011 11:51 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vidíte v logu Apache skutečnou IP adresu klienta a nebo tu, na které naslouchá nginx? Aby Apache viděl i skutečnou IP, mělo by stačit doinstalovat si modul mod_rpaf http://navody.josef.kyrian.cz/26.11.2009-reverzni-proxy-nginx-gt-apache-se-zachovanim-remote-ip

Provozuju také nginx jako reverzní proxy spolu s Apachem a funguje to s tímto modulem výborně.
Linux Dokumentační Projekt - PDF ke stažení
18.10.2011 12:19 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Hmm.. opravdu nerozumim proc to nejde. Muzu vas poprosit jaky volby jste pouzil u ./configure ......?
18.10.2011 12:35 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Prave ze vsechno mam takto nainstalovane, mod_rpaf mi funguje vporadku, v logu vidim normalne skutečnou IP adresu klienta.

On i ten Limit jako takovy funguje, protoze pokud zmenim z
allow from xxx.xxx.xxx.xxx
na
allow from all
Tak se do adresare dostanu.

Takze jediny problem je, ze z nejakeho duvodu to nevidi nebo si neporadi s IP adresou v
allow from xxx.xxx.xxx.xxx
MMMMMMMMM avatar 18.10.2011 12:39 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
A pokud tam dáte allow from all, v logu Apache je potom po úspěšném přístupu jaká IP adresa klienta? Jinak mám výchozí nastavení nginx (při kompilaci měním pouze --prefix, mám nainstalovaných víc verzí)
18.10.2011 12:48 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Pokud dam allow from all vidim svou IP, takze nechapu :)

Fakt nechapu co je toto za glitch, zkusim nainstalit jinou verzi, pripadne verzi z RPMka (system je centos 5.6 64b).
MMMMMMMMM avatar 18.10.2011 12:56 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Take to nechapu, u mne to funguje OK. Jeste mne napadlo, jak je nastaveno AllowOverride (pro praci s .htaccess), ale kdyby tam chybela moznost prepsat LIMITu, tak by to skoncilo na 500-Internal error, coz urcite neni vas pripad. :-)
18.10.2011 13:01 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Tam je opravdu pouze problem s predanim IP adresy. Z nejakyho duvodu nginx nezpracuje IP adresu v allow radce.

Zkousel jsem jinou verzi nginxu, zkousel jsem nginx z rpmka a problem se nevyresil. Kazdopadne diky za snahu a trpelivost. Zkusim to jeste nejak z gruntu poladit/debugnout.
MMMMMMMMM avatar 18.10.2011 13:14 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
A jste si jist, ze nginx tu IP v poradku nepreda? Kdyz se mrknete do ErrorLogu Apache, jaka IP adresa se zobrazi v pripade nepovoleneho pristupu, je ta IP adresa stejna jako ta, co je v .htaccess jako povolena? On totiz nginx vubec s .htaccess nepracuje, to je az zalezitost Apache.
18.10.2011 13:21 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Hmm toto jsem prehlidnul v error logu, jinak bych sem nepsal. client denied by server configuration. Zkusim ted nejak zjistit co to presne blokuje.. protoze kdyz jede pouze apache, tak je to ok.. problem je nekde kdyz bezi kombinace apache/nginx.
19.10.2011 13:30 iKoulee | skóre: 19
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Mam dojem (tusim ze jsem to cetl nekde v dokumentaci modulu rpaf), ze z nejakeho technologickeho duvodu rpaf meni IP az po te, co je schopen predat pozadavek ke zpracovani, tedy az po vyreseni pristupu, do te doby zustava REMOTE_ADDRESS bo jak je ta promenna nastavena na hodnotu odkud pozadavek prisel (tedy NGINX/localhost). Bohuzel se mi aktualne nepodarilo vygooglit zdroj, od kud to mam.
Even if you fall on your face, you’re still moving forward
18.10.2011 13:47 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Problem bude nekde v tom mod_rpaf, protoze pokud zadam allow from 127.0.0.1, tak se do adresare dostanu. Pritom v apache logu vidim svou IP ne ip localhostu. Dam jeste vedet pokud na to prijdu.
18.10.2011 16:19 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Abych vyloucil jakoukoliv chybu.. na cistou centos instalaci jsem nainstaloval
yum install httpd httpd-devel nginx
v httpd.conf zmenil:
Listen 8080
NameVirtualHost 127.0.0.1:8080
vytvoril virtual hosta:
<VirtualHost 127.0.0.1:8080>
    ServerName servername.com
    DocumentRoot /home/test
    <Directory />
        Options Includes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>
zkompiloval mod_rpaf:
cd /home/src/mod_rpaf-0.6
make rpaf-2.0
make install-2.0
vytvoril mod_rpaf.conf s:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For
v nginx conf.d vytvoril soubor proxy.conf s:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
v nginxu vytvoril virtual hosta s:
server {
    listen 80;
    server_name servername.com;

    # Nginx processing
    location ~* ^.+\.()$ {
        root /home/test;
        expires max;
        add_header  Last-Modified: $date_gmt;
    }

    # Apache processing
    location / {
        proxy_pass http://127.0.0.1:8080;
        include /etc/nginx/proxy.conf;
        index index.html;
    }
}
A stejne to nefunguje. allow from all funguje, allow from 127.0.0.1 funguje, allow from moje_ip nefunguje.

V apache logu vidim mou IP. Dokazal by prosim nekdo vysvetlit mi kde tedy delam chybu? Diky.

19.10.2011 13:47 ET
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
IMHO beres blbej header v mod_rpaf.conf - videl bych to na "RPAFheader X-Real-IP" priste se koukni poradne do apache logu...

19.10.2011 13:49 ET
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
btw: http://stderr.net/apache/rpaf/
Řešení 1× (MMMMMMMMM)
19.10.2011 15:30 Roman
Rozbalit Rozbalit vše Re: Limit deny allow apache + nginx
Dovoluji si nesouhlasit.

s RPAFheader X-Real-IP to samozrejme take nejde.

Bohudik uz jsem jiz nasel reseni tohoto problemu.. nebo spise bugu v apache modulu: mod_authz_host.c

Problem je popsan zde:

apache-access-control-and-mod_rpaf

a resenim na me centos 5.6 instalaci bylo vypnuti ipv6 podpory v systemu
echo "options ipv6 disable=1" >> /etc/modprobe.conf
/sbin/chkconfig ip6tables off
reboot
Problem je timto vyresen a vse funguje jak ma. Diky za reakce.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.