Trying to get yellowfin to work with mod_proxy in apache

John-Paul shared this question 6 years ago
Answered

Hi,


As the title says I am trying to get yellowfin to work through and apache front end using mod_proxy. The config I have thus far is

ProxyPass /yellowfin http://172.30.16.5:8080/

ProxyPassReverse /yellowfin http://172.30.16.5:8080/

ProxyPass /logon.i4 http://172.30.16.5:8080/logon.i4

ProxyPassReverse /logon.i4 http://172.30.16.5:8080/logon.i4

ProxyPass /MIEntry.i4 http://172.30.16.5:8080/MIEntry.i4

ProxyPassReverse /MIEntry.i4 http://172.30.16.5:8080/MIEntry.i4

ProxyPass /RunDashboard.i4 http://172.30.16.5:8080/RunDashboard.i4

ProxyPassReverse /RunDashboard.i4 http://172.30.16.5:8080/RunDashboard.i4


For each successive .i4 file I added I got a bit further however it still does not work right. Is there a known working config for getting yellowfin to work with mod_proxy in an apache front end?

Replies (3)

photo
1

Surely someone knows? mod_jk is outdated and not preferred and won't work for my purposes anyway.

photo
1

Hi John-Paul,

Thanks for reaching out with your question. I'm afraid Apache Configuration isn't explicitly covered by the Yellowfin Support Contract. That being said, I would suspect you should be able to specify a wildcard for the root of Yellowfin instead of having to explicitly configure each page. The latter will likely not be an easy task.

We don't have have any working configurations for this, as mod_proxy isn't explicitly supported and is more of a custom configuration / integration of Yellowfin. It also proves difficult to offer advice on this scenario due to an inherent lack of knowledge of your environment and infrastructure.

Has the attempted use of wildcards failed?

Thanks,

Ryan

photo
1

Hi Ryan,


Thanks for the reply. I did try ProxyPassMatch in the ssl.conf with something like:


ProxyPassMatch "^/yellowfin/(.*\.i4)$" "http://172.30.16.5:8080/$1";


But I get similar results and I think it may need more tweaking. Unfortunately it is not really an option for us to use just / for the reverse proxy as that needs to be used for another service. We really wanted to get /yellowfin to work so we could use the proxy cert and not have to buy another cert just for yellowfin in Tomcat. On a side note, making it just / does seem to work but only in IE. Both Firefox and Chrome have problems with it for whatever reasons.


For a better picture of the infrastructure, there is a RedHat 7.4 Linux server running Apache as the reverse proxy and a RedHat 7.4 Linux server running yellowfin on Tomcat 8.5.x with java 1.8_162. All in Azure.

photo
1

There is a setting in Yellowfin under administration | System | General Settings that looked promising to us that might fix some of the issues we were seeing. It is External Instance Base URL. Setting it to the proxy URL with or without the /yellowfin (depending on what reverse proxy setting we were testing at the time) didn't seem to do anything at all though. What exactly is this setting for and was I way off base thinking it would be helpful in this case?

photo
1

Hi John-Paul,

Thanks for the reply. On the note of the 'External Instance Base URL' setting, this setting configures how Yellowfin crafts the links back to itself when sharing a report or other items. This setting won't manipulate Tomcat behavior.

As stated before, this really boils more down to configuring mod_proxy and isn't explicitly covered under the Yellowfin Support contract.

In many of Yellowfin's URL's, the .i4 is appended by a parameter in the form of ?parameterName=xxxx. I'm not proficient in regex or mod_proxy, but it's possible that not accounting for this is throwing off your configuration. You can see an example of what I mean by manually running a report from Yellowfin outside of the proxy.

Let me know if that helps.

Thanks,

Ryan

photo
photo
1

Hi John-Paul,

I wanted to reach out on this and see if my reply was of any help setting this up.

Thanks,

Ryan

photo
2

I eventually got it to work with both ajp and http. Some settings were missing in Tomcat which is why http didn't work.

In the http connector setting I had to add:


proxyName="<FQDN>"

proxyPort="443"

scheme="https"

photo
1

Hi John-Paul,

Thanks for providing this answer here. I'll go ahead and mark this as Answered. Please don't hesitate to reach out with further questions or issues.

Thanks,

Ryan

photo
Leave a Comment
 
Attach a file