[IPT] How to configure IPT with Apache mod_proxy?

Oliver Meyn (GBIF) omeyn at gbif.org
Mon May 2 16:06:45 CEST 2011

Hi Janno,

Sorry, my mistake for not reading your email closely enough.  Using a tomcat configured like your jetty (listening on 8080 with an app registered on the path /ipt/)
my apache is configured like so, and admin functions work for me (so the url in my case is http://www.domain.com/ipt ):

        ProxyPreserveHost On
        ProxyPass /ipt http://localhost:8080/ipt
        ProxyPassReverse /ipt http://localhost:8080/ipt

Because the /ipt path is the same for apache and tomcat, in this case you don't need the reversecookiepath directive.  Let's see if that helps.


On 2011-05-02, at 3:47 PM, janno jõgeva wrote:

> Hi Oliver,
> Well tried again - I have read these instructions a while back - they
> seam to be same as before (Updated Jan 30, 2011 by
> timrober... at gmail.com).
> This set-up gets me to a state where shown on a picture in attachment.
> I can log in to the system but graphical elements are not loaded.
> If I have not understood something wrong then the configuration
> suggested on the wiki page is going to forward all requests from / to
> http://localhost:8080/ipt/
> That doesn't sound right.
> I have also looked into several jetty examples like this one here:
> http://docs.codehaus.org/display/JETTY/Configuring+mod_proxy
> So why is ProxyPassReverse / http://localhost:8080/ipt/ needed in the
> case of IPT?
> My needed set-up should only forward requests from sitename.ee/ipt/ to
> the IPT located on port 8080.
> Other requests should be handled by Apache.
> Best,
> Janno
> 2011/5/2 Oliver Meyn (GBIF) <omeyn at gbif.org>:
>> Hi Janno,
>> We successfully setup an ipt in the way you suggest, and wrote it up on a wiki page.  Please have a look at http://code.google.com/p/gbif-providertoolkit/wiki/IPTServerPreparation, right at the bottom.  Important settings copied here:
>> ProxyPreserveHost On
>> ProxyPass / http://localhost:8080/ipt/
>> ProxyPassReverse / http://localhost:8080/ipt/
>> ProxyPassReverseCookiePath /ipt /
>> Please try those settings and report back.  If that doesn't work we'll help you figure it out.
>> Thanks,
>> Oliver
>> On 2011-05-02, at 2:37 PM, janno jõgeva wrote:
>>> Hello!
>>> I managed to find on line in the httpd.conf that is no needed.
>>> ProxyPassReverse /ipt/ http://localhost:8080/
>>> As I already have ProxyPreserveHost On.
>>> But that didn't solve my problem.
>>> I did change the ipt.baseURL as you said. But that gets me to a point
>>> where some of the page contents are loaded and some are not. (I do
>>> have a login field and text fields but no graphical elements are
>>> loaded (logos etc.) ).
>>> I'll try to give my situation:
>>> I have a web server running Apache2 behind a firewall that has port 80
>>> open and Apache2 using it. I would like to get IPT up an running so I
>>> decided to use jetty to run the app on port 8080 and mod_proxy to
>>> direct requests from Apache to IPT. I start IPT with:
>>> /usr/bin/java $JAVA_OPTS -classpath
>>> /opt/ipt/webapp/WEB-INF/classes/:/opt/ipt/webapp/WEB-INF/lib/*
>>> org.gbif.ipt.Server 8080
>>> It is given as an argument to a function that makes it a service. With
>>> appropriate PID output dirs etc.
>>> So it starts. I navigate to the site in a machine on the address. Log
>>> in to the system. Everything seams fine.
>>> I can see my unpublished dataset users etc.
>>> But when I for example want to change the role of a user it tries to
>>> send its request to address sitename.ee/ not to sitename.ee/ipt/ as
>>> usually.
>>> The problem only seams to occur when IPT is trying to access
>>> ...admin/config.do or ...admin/user.do.
>>> When I inject ipt/admin/config.do instead of admin/config.do
>>> to the save button action(in the loaded page) then the changes are
>>> actually saved to the IPT user configuration - in this case the role
>>> of the user changes.
>>> As I understand ipt.baseURL should be publicly accessible and should
>>> point to the installation in my server. As requests have to pass
>>> firewall I should point them to  sitename.ee/ipt not to sitename.ee as
>>> there is content served by Apache not by IPT.
>>> I am quite new to mod_proxy as well, but as it seams be the way to go
>>> I started using it.
>>> Probably I am just going the wrong way.
>>> Best,
>>> Janno Jõgeva
>>> University of Tartu
>>> Natural History Museum
>>> 2011/5/1 Tim Robertson (GBIF) <trobertson at gbif.org>:
>>>> Dear Janno,
>>>> Welcome to the list.
>>>> To my knowledge you are the first that is using mod_proxy and also using
>>>> Jetty - I have only used modjk to bind tomcat to apache and jetty during
>>>> development.
>>>> You should not need to change any property files - those are internal and
>>>> controlled by the app itself - but your point on the property file
>>>> commentary is quite correct.
>>>> Because you have changed the addressable URL, the IPT needs to know of it's
>>>> new address.  You can change this in the admin section (top option), or if
>>>> you prefer, change the
>>>>> ipt.baseURL=http\://sitename.domain/ipt/
>>>> to
>>>>> ipt.baseURL=http\://sitename.domain
>>>> and restart.
>>>> If you have registered any resources with GBIF then afterwards you need to
>>>> go into the admin section and hit the "update metadata" button to change all
>>>> resource URLs in the GBIF registry.
>>>> I hope this helps and sorts your issues,
>>>> Tim
>>>> On May 1, 2011, at 1:09 PM, janno jõgeva wrote:
>>>>> Hello!
>>>>> I am quite new to this list so hello to everyone.
>>>>> Maybe I just missed something but here is my question.
>>>>> I am setting up an IPT node on our site. As IPT is not too much of a
>>>>> load it could run on a server that has other tasks as well.
>>>>> I have managed to set the IPT up and running via apache mod_proxy
>>>>> using jetty. I have daemonized it to a service on port 8080.
>>>>> The version I am using is ipt-2.0.2-SNAPSHOT-r3084.
>>>>> My ipt.properties is as follows:
>>>>> analytics.key=
>>>>> debug=false
>>>>> proxy=
>>>>> ipt.baseURL=http\://sitename.domain/ipt/
>>>>> analytics.gbif=true
>>>>> defaultLocale=en
>>>>> and apache configured as:
>>>>> ...
>>>>> ProxyPass /ipt/ http://localhost:8080/
>>>>> ProxyPassReverse /ipt/ http://localhost:8080/
>>>>> ProxyPassReverseCookiePath /ipt /
>>>>> ProxyPreserveHost On
>>>>> ...
>>>>> Alias   /ipt                        "/opt/ipt/webapp"
>>>>> <Directory                              "/opt/ipt/webapp">
>>>>> ...
>>>>> My problem - the IPT runs fine - I can make changes for example in
>>>>> source data SQL configuration part. but whenever the application(IPT)
>>>>> has to call sitename.domain/ipt/admin/user.do
>>>>> it calls sitename.domain/admin/user.do instead and understandably fails.
>>>>> My question - is there a good documentation source for the
>>>>> ipt.properties file? If not then could you tell me what is the "proxy"
>>>>> configuration parameter for?
>>>>> Hope that the explanation is detailed enough.
>>>>> PS.
>>>>> IMHO a configuration file should have documentation for each and every
>>>>> parameter written inside the file. It would help a lot.
>>>>> Best wishes,
>>>>> Janno Jõgeva
>>>>> University of Tartu
>>>>> Natural History Museum
>>>>> _______________________________________________
>>>>> IPT mailing list
>>>>> IPT at lists.gbif.org
>>>>> http://lists.gbif.org/mailman/listinfo/ipt
>>> _______________________________________________
>>> IPT mailing list
>>> IPT at lists.gbif.org
>>> http://lists.gbif.org/mailman/listinfo/ipt
>> --
>> Oliver Meyn
>> Software Developer
>> Global Biodiversity Information Facility (GBIF)
>> +45 35 32 15 12
>> http://www.gbif.org
>> _______________________________________________
>> IPT mailing list
>> IPT at lists.gbif.org
>> http://lists.gbif.org/mailman/listinfo/ipt
> <IPT_mod_proxy.JPG>_______________________________________________
> IPT mailing list
> IPT at lists.gbif.org
> http://lists.gbif.org/mailman/listinfo/ipt

Oliver Meyn
Software Developer
Global Biodiversity Information Facility (GBIF)
+45 35 32 15 12

More information about the IPT mailing list