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.proxyPort (default: 80)
- http.nonProxyHosts (default: <none>)
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 page.
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
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:
Note: You may need to escape the pipe character (|) in some command-line environments.
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 providingto Java in your application server's configuration file. Specifically, the following properties:
- http.proxyUser – username
- http.proxyPassword – secret
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.