Portál AbcLinuxu, 12. května 2025 01:41
echo $_SERVER['REMOTE_HOST']
se nic nevypise.$_SERVER['REMOTE_ADDR']nebo
gethostbyaddr($_SERVER['REMOTE_ADDR'])První ukáže IP adresu, to druhé odpovídající PTR záznam.
$_SERVER['REMOTE_ADDR']
se musi povolit v http.conf:
HostnameLookups OnSlo spis vic o princip...
Tak, tak. Zapínať HostnameLookups on
pre všetky requesty bez rozdielu je na 99% neprimerané opatrenie, ktoré prinesie viac negatív než pozitív. Mne osobne by stačilo už len to, že request príde na server, potom sa niekoľko sekúnd reverzným DNS resolvuje adresa, a až potom sa naozaj môže spustiť PHP a spracovať požiadavku. Ak je requestov veľa, tak to jednak môže generovať veľký DNS traffic, a dvak musí naraz bežať viac apachov, z ktorých väčšina nič nerobí, len je obsadených a čakajú kým budú môcť pokračovať. Zvyšujú sa nároky na priepustnosť siete (zbytočný DNS resolving), na pamäť (viac apačov ktorí nič nerobia, len čakajú), a ešte k tomu stúpa čas odozvy webu - klient pošle požiadavku, chvíľu čaká, čaká (resolving na strane servra), a až potom po chvíli sa to naozaj začne spracovávať a zo servra lezie odpoveď.
Je lepší nápad to resolvovať až keď to naozaj treba, a nie paušálne pre všetky requesty.
gethostbyaddr() static char *php_gethostbyaddr(char *ip);a kouknete se podrobneji do definic v hlavickach, vsimnete si, ze funkce taky vyuziva prekladu na DNS. Musim sice uznat, ze to zas tak nezatezuje server, ale odtoho se to jmenuje 'server'
Server môže byť dimenzovaný ako chce, ale rýchlosť spätného resolvingu nezáleží od neho, ale od iných servrov. Ak použije cachovací server niekde dosť blízko, tak môže väčšinu opakujúceho sa trafficu hitnúť z cache, to ale nič nemení na tom, že na spätný resolving jednej IP adresy pri IPv4 treba tak 3-4 DNS requesty (a to na 3-4 rôzne servre s rôzne dobrou odozvou), ktoré sa pri novom klientovi proste musia vykonať predtým než Apache vôbec začne pracovať na zistení obsahu samotnej stránky a jej odoslaní. Ak sa to zapne v Apache paušálne pre všetky requesty, tak túto zbytočnosť robí aj keď ide posielať statický obsah - ako čisté HTMLka, obrázky, CSSka, JavaScripty, či flashe.
Podľa môjho názoru, ktorý je možno trochu zastaralý: to že si niečím môžeme dovoliť plytvať nie je ospravedlnením pre to, aby sme to robili.
Možno by nebolo odveci si prečítať aj to čo k tomu hovorí oficiálny manuál Apache. Sami autori to doporučujú nechať vypnuté ak to "truly" nepotrebuješ.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.