Integrating with other web servers

Redirection notice

This page will redirect to /pages/viewpage.action?pageId=806032611 .

Third Party Web Server Support

Please note that support for third-party web servers is provided on a best-effort basis. Please see Atlassian Support Offerings for more information.

FishEye has a built-in web server, but commonly runs in an environment that has its own web server. You can easily proxy through to FishEye from this primary web server, so that it appears as if FishEye is part of the primary web server.

In most situations, FishEye can determine the host and port of the primary web server automatically. This is useful when you have multiple virtual hosts proxied through to the one FishEye instance.

If it appears FishEye is having trouble automatically detecting the primary web server's host and port, you will need to set the Proxy host and Proxy port parameters. If the primary web server is running on WEBHOST:80 and FishEye is running on FEHOST:8060, then you can set FishEye's Proxy host and Proxy port parameters to WEBHOST and 80. See Configuring the FishEye web server for details on making these changes. The examples below show how the information will be saved to the FishEye configuration file (config.xml):

<http bind=":8060" proxy-host="extranet.example.com" proxy-port="80" proxy-scheme="http"/>

If the primary web server is using SSL, add the parameter proxy-scheme="https" and also add the correct port as in the following example:

<http bind=":8060" proxy-host="extranet.example.com" proxy-port="443" proxy-scheme="https"/>

Note: FishEye sends cookies in clear text when a user makes a non-SSL request (the cookie is made secure if the incoming request uses SSL). If SSL acceleration is done by primary reverse proxy, it is advisable to rewrite all cookies at the reverse proxy level to make them secure.

You will probably want FishEye to appear in a subdirectory of the primary server. In that case, you need to set FishEye's web context parameter (again, see Configuring the FishEye web server) .

<web-server context="/fisheye">
<http bind=":8080" proxy-host="extranet.example.com" proxy-port="443" proxy-scheme="https"/>
</web-server> 

The rest of the page assumes you have set this value to fisheye.

(info) You will need to restart FishEye before any of the above parameters take effect.

Then, configure your primary web server as described below.

Apache

The easiest way to proxy through to FishEye is using the ProxyPass and ProxyPassReverse directives which require the mod_proxy module. Add this section to your Apache configuration:

ProxyPass /fisheye http://FEHOST:8060/fisheye
ProxyPassReverse /fisheye http://FEHOST:8060/fisheye

When you proxy to the FishEye host you should set the web context in the FishEye web server configuration to the same path as the one you are proxying. In the example above the FishEye web context should be set to "fisheye".

If you want Apache to serve FishEye's static content, then you can do something like this instead:

<Directory "/<FishEye install directory>/content/static" >
    Allow from all
    AllowOverride None
</Directory>
Alias /fisheye/static /<FishEye install directory>/content/static
ProxyPass /fisheye/static/ !
ProxyPass /fisheye  http://FEHOST:8060/fisheye

An alternative to using ProxyPass is to use mod_rewrite with the [P] flag.

AJP

FishEye also supports AJPv13 connectivity. For more information, please see Using AJP with FishEye.

Troubleshooting

Was this helpful?

Thanks for your feedback!

Why was this unhelpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport