Re: lug-bg: Как да запазя source IP при mod_proxy?
- Subject: Re: lug-bg: Как да запазя source IP при mod_proxy?
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Tue, 7 Feb 2006 09:44:35 +0200
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
On Tue, Feb 07, 2006 at 12:02:05AM +0200, Georgi Hristozov wrote:
> Здравейте! Имам един проблем с Apache 2, вече го обсъждахме в един
> форум, но още не мога да намеря решение. Едната от машините е с Windows,
> но се надявам да няма флеймове, тъй като става дума за конфигурация на
> Apache. Както и да е, имам следната конфигурация:
> INTERNET <-> Windows box <-> Linux box
> И на двете машини имам Apache 2 (на рутера е 2.0.55, на Linux машината е
> 2.2.0). На Windows-ката имам следната конфигурация за reverse proxy:
>
> <VirtualHost *:80>
> ServerAdmin webmaster@xxxxxxxxxxxx
> ServerName daffy.zloba.ath.cx:80
> ServerAlias daffy mdk.wtf.la mdk
> ProxyPass / http://192.168.0.2:80/
> ProxyPassReverse / http://192.168.0.2:80/
> ErrorLog logs/daffy/error.log
> CustomLog logs/daffy/access.log combined
> </VirtualHost>
>
> ProxyRequests Off
>
> Хубаво, всичко си се логва в logs/daffy/access.log на Windows-ката
> машина. Но за другата машина (daffy), целият свят е с IP-то на рутера
> пред нея. Та въпросът е как да накарам mod_proxy да изпраща в http
> header-ите истинските IP-та на клиентите, а не това на рутера. Как ли не
> се мъчих да ровя из документации, не съм сигурен дали не може да стане с
> mod_rewrite, вече съвсем загубих надежда за директивите на mod_proxy.
Ако имаш предвид, че искаш да запазиш IP адреса в TCP/IP header-а, т.е.
задният уебсървър да получава TCP връзка, която да изглежда като че ли
си идва от истинския IP адрес, а не от IP адреса на рутера, това НЕ може
да бъде направено с mod_proxy. Това, което mod_proxy прави, е просто да
накара уебсървъра върху рутера да отвори нова, съвсем нормална, съвсем
истинска TCP връзка до истинския уебсървър отзад - и тази съвсем
нормална TCP връзка си има съвсем нормален изходящ (source) IP адрес -
който, както вече си забелязал, е IP адресът на рутера :) При това
положение единственото, което можеш да накараш mod_proxy да направи, е
да пази "истинския" оригинален IP адрес на клиента някъде из *HTTP*
header-ите, примерно с ProxyVia, и после на "истинския" уебсървър да
имаш някаква специална обработка на тези headers.
Ако искаш повече от това - ако искаш истинско запазване на оригиналния
IP адрес - единственото, което може да те спаси, е NAT :) И... хм...
таковата... всъщност не би трябвало да бъде чак толкова сложно :)
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
If wishes were fishes, the antecedent of this conditional would be true.
Attachment:
pgpu3h4X2QN0P.pgp
Description: PGP signature
|