httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kiran kumar <>
Subject Re: RE: RE: [users@httpd] Apache ReverseProxy for JavaWebStart Application.
Date Thu, 25 Jan 2018 16:31:02 GMT

I also tried placing the Proxy configuration inside the Location block as well, but it didn't
 <VirtualHost *:85>

ProxyRequests Off<Location "/ServicesWeb">
ProxyPass               “http://localhost:8080/ServicesWeb”ProxyPassReverse  
“http://localhost:8080/ServicesWeb”Substitute "s|http://localhost:8080/||i"</Location>

Please find the attached launch.jnlp file that gets generated that has the urls generated
with the application server urls instead of apache urls. Meanwhile i will go through the FilterDeclare/FilterProver/FilterChain.
But tell about using ProxyPreserveHost is solving the issue, but having Proxy for third party
applications are not working. Do you have any idea on that, why ProxyPreserveHost works if
the apache and application server are in the box, but not for applications running in different

Please reply.
    On Thursday 25 January 2018, 11:09:27 AM GMT-5, Houser, Rick <>
 #yiv5204526202 #yiv5204526202 -- _filtered #yiv5204526202 {font-family:Helvetica;panose-1:2
11 6 4 2 2 2 2 2 4;} _filtered #yiv5204526202 {panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv5204526202
{font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv5204526202 #yiv5204526202 p.yiv5204526202MsoNormal,
#yiv5204526202 li.yiv5204526202MsoNormal, #yiv5204526202 div.yiv5204526202MsoNormal {margin:0in;margin-bottom:.0001pt;font-size:11.0pt;}#yiv5204526202
a:link, #yiv5204526202 span.yiv5204526202MsoHyperlink {color:blue;text-decoration:underline;}#yiv5204526202
a:visited, #yiv5204526202 span.yiv5204526202MsoHyperlinkFollowed {color:purple;text-decoration:underline;}#yiv5204526202
p.yiv5204526202msonormal0, #yiv5204526202 li.yiv5204526202msonormal0, #yiv5204526202 div.yiv5204526202msonormal0
{margin-right:0in;margin-left:0in;font-size:11.0pt;}#yiv5204526202 p.yiv5204526202msonormal0,
#yiv5204526202 li.yiv5204526202msonormal0, #yiv5204526202 div.yiv5204526202msonormal0 {margin-right:0in;margin-left:0in;font-size:11.0pt;}#yiv5204526202
p.yiv5204526202msonormal, #yiv5204526202 li.yiv5204526202msonormal, #yiv5204526202 div.yiv5204526202msonormal
{margin-right:0in;margin-left:0in;font-size:11.0pt;}#yiv5204526202 p.yiv5204526202msochpdefault,
#yiv5204526202 li.yiv5204526202msochpdefault, #yiv5204526202 div.yiv5204526202msochpdefault
{margin-right:0in;margin-left:0in;font-size:11.0pt;}#yiv5204526202 p.yiv5204526202msonormal1,
#yiv5204526202 li.yiv5204526202msonormal1, #yiv5204526202 div.yiv5204526202msonormal1 {margin:0in;margin-bottom:.0001pt;font-size:11.0pt;}#yiv5204526202
p.yiv5204526202msonormal01, #yiv5204526202 li.yiv5204526202msonormal01, #yiv5204526202 div.yiv5204526202msonormal01
{margin-right:0in;margin-left:0in;font-size:11.0pt;}#yiv5204526202 p.yiv5204526202msochpdefault1,
#yiv5204526202 li.yiv5204526202msochpdefault1, #yiv5204526202 div.yiv5204526202msochpdefault1
{margin-right:0in;margin-left:0in;font-size:10.0pt;}#yiv5204526202 span.yiv5204526202ydp76fd50bdyiv6002100983ydp811169beskimlinks-unlinked
{}#yiv5204526202 span.yiv5204526202msohyperlink {}#yiv5204526202 span.yiv5204526202msohyperlinkfollowed
{}#yiv5204526202 span.yiv5204526202emailstyle23 {}#yiv5204526202 span.yiv5204526202msohyperlink1
{color:#0563C1;text-decoration:underline;}#yiv5204526202 span.yiv5204526202msohyperlinkfollowed1
{color:#954F72;text-decoration:underline;}#yiv5204526202 span.yiv5204526202emailstyle231 {color:windowtext;}#yiv5204526202
span.yiv5204526202ydp811169beskimlinks-unlinked {}#yiv5204526202 span.yiv5204526202EmailStyle32
{color:windowtext;}#yiv5204526202 .yiv5204526202MsoChpDefault {font-size:10.0pt;} _filtered
#yiv5204526202 {margin:1.0in 1.0in 1.0in 1.0in;}#yiv5204526202 div.yiv5204526202WordSection1
You’ll have to piece the non-JNLP stuff together yourself, but I looked at my config and
the JNLP I changed does not have http:// in it.  With this module, you are doing a dumb string
replace anywhere you see that pattern in a response body.  So, you should probably put that
in a location block (to avoid processing all the unrelated content) , and then look at that
particular JNLP file with wget or something, to make sure you are doing the replace on the
correct string, much like if you were doing a perl/sed text substitution from a command line. 
You might also need to use FilterDeclare/FilterProver/FilterChain to get your request to mod_substitute,
or that might just be an optimization we did.
Good luck.
Rick Houser
Web Engineer
From: kiran kumar []
Sent: Thursday, January 25, 2018 10:36
To: Houser, Rick <>;
Subject: Re: RE: [users@httpd] Apache ReverseProxy for JavaWebStart Application.

Thanks Rick for your reply.
I am trying to understand your reply.
The JNLP file that generates dynamically when we launch the client has some urls for the same
java web start application, those urls should be the apache url's instead of the application
server urls which is not happening when the JNLP file generated dyamically.
As i mentioned in my first email, if i use the ProxyPreserveHost ON, then the generated JNLP
file has the apache host name urls, this way it works, but the other problem i have is, the
third party applications that are reverse proxied in the same virtual host configuration are
not working because of ProxyPreserveHost.
So, are you saying that we should be able to achieve this using mod_substitute module to tell
JNLP to send traffic back to Apache on the fly without using the ProxyPreserveHost turned
I have given a try as as shown below, but the generated JNLP is starting the application with
the application server url. Please see the screen shot attached.
<VirtualHost *:85>
ProxyRequests Off
ProxyPass                 “/ServicesWeb”      “http://localhost:8080/ServicesWeb”
ProxyPassReverse “/ServicesWeb”      “http://localhost:8080/ServicesWeb”
Substitute "s|http://localhost:8080/ServicesWeb/||i"

Please help me on this, i am new comer to apache and i need your expertise to solve the issue.
On Thursday 25 January 2018, 9:23:42 AM GMT-5, Houser, Rick <>
It sounds like the client is never sending the traffic to Apache (per the JNLP), so you aren’t
able to touch it until you first tell the client to send it there.  You can either serve
that file statically with the changes already present, or use mod_substitute to modify it
on the fly.
Rick Houser
Web Engineer
From: kiran kumar []
Sent: Wednesday, January 24, 2018 17:42
Subject: [users@httpd] Apache ReverseProxy for JavaWebStart Application.
I have java web start application running in my Jboss Application server.
I have configured the reverse proxy configuration for my JavaWeb start application as shown
<VirtualHost *:85>
ProxyRequests Off
ProxyPass                 “/ServicesWeb”      “http://localhost:8080/ServicesWeb”
ProxyPassReverse “/ServicesWeb”      “http://localhost:8080/ServicesWeb”
I see that my web start application is not getting proxied and the JNLP file launched the
application using my application server host name and port. But the other web applications
which are running in the same Jboss application server JVM instance are getting proxied and
the urls are always the apache urls.
How should i achieve to make it reverse proxied to the apache for my java web start application.
? I heard that there is a directive called ProxyPreserveHost to be turned ON will help the
Java web start application to proxy, but there are issues with this where if there are any
ReverseProxy configurations for third party applications in the same VirtualHost, those applications
are not getting proxied and giving 404 errors. 
Please provide the details how i could achieve.
View raw message