Hi,
thanks for your help!

I now tried the following: I set up the configuration as you told me on my 
local machine (running Windows XP) and everything works like expected (getting 
some IP-address), like you described.

If, however, I move to one of our servers (I tried two different servers now), 
both running a Windows 2000 Server operating system, I get the 0.0.0.0 IP, 
using exactly the same configuration as on my local machine.

Any ideas????

Thanks,
Nino

-----Ursprüngliche Nachricht-----
Von: Johnny Kewl [mailto:[EMAIL PROTECTED] 
Gesendet: Dienstag, 3. Juli 2007 13:14
An: Tomcat Users List
Betreff: Re: Tomcat - Apache: IP replacement

Hi Nino,

Just to make sure my memory served me correctly, I setup a test case for
Apache -> JK -> TC.... on a machine (XP SP2) with IPV6 enabled.
Apache, Browser and TC... are all on same machine to simulate your test.
Apache is not IPv6 enabled
The machines name is Animal.... ipv4 10.0.0.4... IPv6 2001:918:0:12:1::2
I have a simple webapp that returns the getRemoteAddr

Turns out I was close, but my memory is actually crap ;)
This is what happens...

==== Direct to TC  Local Browser===
http://localhost:8080/TestRemoteIp/   gives  Remote IP is 0:0:0:0:0:0:0:1
http://animal:8080/TestRemoteIp/   gives  Remote IP is 0:0:0:0:0:0:0:1
(See my memory sucks.... I remembered that as 0.0.0.0)
This is different from IPv4.... normally that will return 10.0.0.4...... if 
I remember correctly ;)
So IPv6 seems to map it all to the loop back address

http://10.0.0.4:8080/TestRemoteIp/   gives Remote IP is 10.0.0.4
Thank goodness ;)

http://[2001:918:0:12:1::2]:8080/TestRemoteIp/  gives Remote IP is 
2001:918:0:12:1:0:0:2

=== Thru Apache Local Browser===
http://localhost/TestRemoteIp/  gives Remote IP is 127.0.0.1
It actually fixes it ;)
http://animal/TestRemoteIp/  gives Remote IP is 127.0.0.1
So with IPv6 the machine name is now mapping to loop back... on IPv4 it 
would be 10.0.0.4

http://10.0.0.4/TestRemoteIp/  gives Remote IP is 10.0.0.4

http://[2001:918:0:12:1::2]/TestRemoteIp/   FAILS expected because this 
apache is not IPv6 enabled

=== Thru Apache REMOTE machine Browser===
When Calling "Animal", or "10.0.0.4".... always gives the correct IPV4 
address of remote machine (which is not IPv6 enabled)

So as you can see.... a few things are different on IPV6..... which I now 
believe you not on ;).... the 0.0.0.0 you getting is just very strange
Even though the little differences will make developers pull their hair out 
;).... its definitely is working, even on IPv6 and the differences are only 
when testing from a local browser.

Just to make sure.... I downloaded Apache and Mod_JK again for the test....
Used Apache apache_2.2.4-win32-x86-no_ssl.msi
and mod_jk-apache-2.2.4.so

NOTICE THAT even though JK is now at version JK-1.2.23.... the binary file 
you download must match the version of Apache.
as you can see from the notes on this page 
http://apache.mirrors.hoobly.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.23/

======= MOD_JK.conf ========

<IfModule !mod_jk.c>
  LoadModule jk_module "D:/DEV/Apache2.2.4/modules/mod_jk.so"
</IfModule>

JkWorkersFile conf/jk/workers.properties
JkLogFile conf/jk/mod_jk.log

JkLogLevel info
#JkLogLevel debug

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

JkMount /TestRemoteIp/*  worker1

========== WORKERS.Properties ========

worker.list=worker1

# Set WORKER1

worker.worker1.port=8009

worker.worker1.host=animal

worker.worker1.type=ajp13

=============== Test JSP =================

<[EMAIL PROTECTED] contentType="text/html"%>
<[EMAIL PROTECTED] pageEncoding="UTF-8"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>TEST getRemoteAddr</title>
    </head>
    <body>

    <h1>TEST getRemoteAddr</h1>

<%
String callerIP = request.getRemoteAddr();
%>
    <p>Remote IP is <%=callerIP%></p>

    </body>
</html>

I couldnt simulate what you getting.... can only suggest you download the 
stuff again... the above definitely works, and I'm guessing you got a bum 
file, or a mismatch between Apache and JK module......

Good Luck


----- Original Message ----- 
From: "Nino Ulsamer" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, July 02, 2007 5:43 PM
Subject: AW: Tomcat - Apache: IP replacement


Hey,
thanks for your support so far.
I just played around with the settings some more and could find out more 
interesting stuff...

First of all, about our configuration: we have an Apache and Tomcat running 
on the same machine, with JK 1.2 in between. If I log requests in Apache, 
the IP address is correct. If I go directly to Tomcat (via port 8080), the 
IP is correct. But if I go through JK, the address gets changed to 0.0.0.0. 
I checked the JK log file, and it logs the following before forwarding to 
Tomcat:

[Mon Jul 02 17:28:36 2007] [0848:1240] [debug] mod_jk.c (604): Service 
protocol=HTTP/1.1 method=GET host=(null) addr=0.0.0.0 name=xxx.xxx.xxx.xxx 
port=80 auth=(null) user=(null) laddr=xxx.xxx.xxx.xxx raddr=0.0.0.0

So even here, this strange 0.0.0.0 is coming up.

One more intersting to notice. From the logfiles I saw that this whole 
problem started when we switched from JK 2 to JK 1.2 (which is supposed to 
be the newer version).

But we are using very basic settings of JK, according to the howto of the 
website. A single loadbalancer-worker, so nothing special.

Any hints???

Nino


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to