May I suggest you following settings ?
httpd.conf :
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ProxyPreserveHost On
You could use also mod_jk :
workers.properties :
worker.list=w1
# Set properties for worker1 (ajp13)
worker.w1.type=ajp13
worker.w1.host=localhost
worker.w1.port=8009
httpd.conf :
...
JkMount /* w1
...
biscuit a écrit:
I have been asked to front an eXo Platform installation (running on Tomcat) with Apache HTTPD in such a way that URLs that are normally available at:
http://myserver:port/portal/private/myportal
are made available at:
http://myserver/
I have made some progress with lots of ProxyPass and ProxyPassReverse directives mapping /public, /eXoResources, etc to their corresponding ajp:// URLs, before having a final catch--all entry:
ProxyPass / ajp://localhost:8009/portal/private/myportal/
ProxyPassReverse / ajp://localhost:8009/portal/private/myportal/
But it still gets stuck on various bits of JavaScript and so-on which are generated on the Tomcat side and refer to the Tomcat URL. There are various properties that can be set to control how this JavaScript gets generated:
eXo.env.portal.portalName
eXo.env.server.context
eXo.env.server.portalBaseURL
eXo.env.portal.context
However, documentation on eXoPlatform's website is a bit sparse and the only thing I can find is this, which seems to avoid modifying configuration on the Tomcat side, and instead relies on Apache doing massses of in-line modification of Tomcat's responses using mod_substitute, which I really don't like the look of.
So I have a few questions:
- Is this approach fundamentally flawed - is it actually possible to achieve what we want or does it introduce ambiguity into the URLs (eg what do we do with the few /public/ URLs we have)?
- Will the above properties help?
- Is the use of mod_substitute the only way of achieving this?
Thanks in advance for any help!
Rich
biscuit a écrit:
I have been asked to front an eXo Platform installation (running on Tomcat) with Apache HTTPD in such a way that URLs that are normally available at:
http://myserver:port/portal/private/myportal
are made available at:
http://myserver/
I have made some progress with lots of ProxyPass and ProxyPassReverse directives mapping /public, /eXoResources, etc to their corresponding ajp:// URLs, before having a final catch--all entry:
ProxyPass / ajp://localhost:8009/portal/private/myportal/
ProxyPassReverse / ajp://localhost:8009/portal/private/myportal/
But it still gets stuck on various bits of JavaScript and so-on which are generated on the Tomcat side and refer to the Tomcat URL. There are various properties that can be set to control how this JavaScript gets generated:
eXo.env.portal.portalName
eXo.env.server.context
eXo.env.server.portalBaseURL
eXo.env.portal.context
However, documentation on eXoPlatform's website is a bit sparse and the only thing I can find is this, which seems to avoid modifying configuration on the Tomcat side, and instead relies on Apache doing massses of in-line modification of Tomcat's responses using mod_substitute, which I really don't like the look of.
So I have a few questions:
- Is this approach fundamentally flawed - is it actually possible to achieve what we want or does it introduce ambiguity into the URLs (eg what do we do with the few /public/ URLs we have)?
- Will the above properties help?
- Is the use of mod_substitute the only way of achieving this?
Thanks in advance for any help!
Rich