Configuring outgoing web proxy support for FishEye or Crucible

Accessing external hosts

FishEye may need to connect to hosts that are outside your network. For example, in Administration > Server Settings > Update Notifications, FishEye needs to access an external server to check for updates. If the FishEye server can't access the site it will throw the following error:

ERROR - Error while checking for newer versions from http://update.atlassian.com (update.atlassian.com)
When trying to check if there are newer versions of FishEye or Crucible

In some environments, access to hosts outside the network are forbidden (in which case, you will need to manually check for updates). In other environments access to hosts outside of the network need to go through a proxy.

If you do have a proxy server, you need to tell FishEye how to send its requests through the proxy.

Configuring an outbound HTTP proxy in FishEye

Proxy support is configured by passing certain arguments to the Java Virtual Machine on startup (for FishEye, you can add them to the FISHEYE_OPTS Environment Variables). These properties follow the conventions defined by Sun:

  • http.proxyHost
  • http.proxyPort (default: 80)
  • http.nonProxyHosts (default: <none>)
  • https.proxyHost
  • https.proxyPort

At a minimum, you need to define http.proxyHost to configure an HTTP proxy, and https.proxyHost for an HTTPS proxy. System property configuration is described on the JVM system properties page.

Properties http.proxyHost and http.proxyPort indicate the proxy server and port that the HTTP protocol handler will use.

-Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080

Property http.nonProxyHosts indicates the hosts which should be connected to directly and not through the proxy server. The value can be a list of hosts, each separated by a |, and in addition a wildcard character (*) can be used for matching. For example:

-Dhttp.nonProxyHosts=*.foo.com|localhost

Note: You may need to escape the pipe character (|) in some command-line environments.

If the http.nonProxyHosts property is not configured, all web requests will be sent to the proxy.

Configuring HTTP proxy authentication

Proxy authentication is also configured by providing system properties to Java in your application server's configuration file. Specifically, the following  properties:

  • http.proxyUser – username
  • http.proxyPassword – secret
  • https.proxyUser
  • https.proxyPassword
How it looks

So, an example of your FISHEYE_OPTS Environment Variables will be:

FISHEYE_OPTS="-Xms128m -Xmx1024m -XX:MaxPermSize=128m -Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080 -Dhttp.nonProxyHosts=*.foo.com|localhost -Dhttp.proxyUser=USERNAME -Dhttp.proxyPassword=SECRET -Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080 -Dhttps.proxyUser=USERNAME -Dhttps.proxyPassword=SECRET"

After having set the FISHEYE_OPTS and restarting your server, go to Administration > Sys Info/Support > System Info, and check your JVM Input Arguments to ensure that your server is picking up your FISHEYE_OPTS as expected.

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