Hi all! I'm trying to configure mod_jk to handle balance two apache-tomcat instances through an Apache "reverse proxy", i read all the documentation, reference guides and howtos i found but it still doesn't work...
Below are some configuration I'm using. The symptoms are that I connect with a browser to a jsp page that prints out the tomcat server that is managing the session, and the relative session ID. Every time I refresh the page, the server name and the sessionID change. I'm using apache httpd 2.2.4 build from source, mod_jk 1.2.23 and apache-tomcat 5.5.23 . Now, this is the httpd.conf (relevant parts only): JkWorkersFile /usr/local/apache2/conf/workers.properties JkShmFile /usr/local/apache2/logs/mod_jk.shm JkLogFile /usr/local/apache2/logs/mod_jk.log JkLogLevel debug JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories JkRequestLogFormat "%w %V %T" NameVirtualHost *:80 <VirtualHost *:80> ServerName portal.domain.it JkMount /status status JkMount /* test </VirtualHost> The workers.properties: worker.list=test worker.portal1.port=8009 worker.portal1.host=inca-portal1 worker.portal1.type=ajp13 worker.portal1.lbfactor=1 worker.portal2.port=8009 worker.portal2.host=inca-portal2 worker.portal2.type=ajp13 worker.portal2.lbfactor=1 worker.test.type=lb worker.test.balance_workers=portal1,portal2 worker.test.sticky_session=True And, finally, I changed the tomcat server.xml file: <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> <Engine name="Standalone" defaultHost="localhost" jvmRoute="portal1" debug="1" /> Finally, this is a piece of the log saying that he founds a certain session ID, and then he sends the request to the other server which then obviously sets a new JSESSIONID... : [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] map_uri_to_worker::jk_uri_worker_map.c (589): Attempting to map URI '/jsp-examples/sesstest.jsp' from 2 maps [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] map_uri_to_worker::jk_uri_worker_map.c (601): Attempting to map context URI '/status=status' source 'JkMount' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] map_uri_to_worker::jk_uri_worker_map.c (601): Attempting to map context URI '/*=test' source 'JkMount' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] map_uri_to_worker::jk_uri_worker_map.c (616): Found a wildchar match '/*=test' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] jk_handler::mod_jk.c (2111): Into handler jakarta-servlet worker=test r->proxyreq=0 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] wc_get_worker_for_name::jk_worker.c (114): found a worker test [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] maintain_workers::jk_lb_worker.c (543): decay with 2^38 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] wc_get_name_for_type::jk_worker.c (290): Found worker type 'lb' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] init_ws_service::mod_jk.c (607): Service protocol=HTTP/1.1 method=GET host=(null) addr=192.168.10.2name= portal.inca.it port=80 auth=(null) user=(null) laddr=192.168.10.201 raddr= 192.168.10.2 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] service::jk_lb_worker.c (915): service sticky_session=1 id='64EEDE6D4E3C9EF3A2048741CDA5C189' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] get_most_suitable_worker::jk_lb_worker.c (767): searching worker for partial sessionid 64EEDE6D4E3C9EF3A2048741CDA5C189 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] get_most_suitable_worker::jk_lb_worker.c (819): found best worker portal2 (portal2) using method 'Request' [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] service::jk_lb_worker.c (935): service worker=portal2 route=portal2 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_get_endpoint::jk_ajp_common.c (2343): acquired connection pool slot=0 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_marshal_into_msgb::jk_ajp_common.c (548): ajp marshaling done [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_service::jk_ajp_common.c (1796): processing portal2 with 2 retries [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ws_write::mod_jk.c (452): written 274 out of 274 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1043): received from ajp13 pos=0 len=2 max=8192 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1043): 0000 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................ [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_process_callback::jk_ajp_common.c (1506): AJP13 protocol: Reuse is OK [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] ajp_done::jk_ajp_common.c (2286): recycling connection pool slot=0 for worker portal2 [Thu Aug 02 16:52:09 2007] test portal.inca.it 0.005241 [Thu Aug 02 16:52:09 2007] [1970:44448] [debug] jk_handler::mod_jk.c (2238): Service finished with status=200 for worker=test Any help would be REALLY appreciated! Fi -- Claudio Tassini