Jira is Slow Due to High Latency Connections While Using Reverse Proxy
Symptoms
Interaction with the Jira application is slow.
Cause
Jira pages pull many separate JavaScript, CSS and image files from the server. Since the Tomcat container instructs the browser to avoid caching, all content will be sequentially (in order of inclusion) checked from the server. This multiplies the connection roundtrip time.
The content on this page relates to platforms which are not supported by JIRA. Consequently, Atlassian cannot guarantee providing any support for it. Please be aware that this material is provided for your information only and using it is done so at your own risk.
The content on this page relates to platforms which are not supported by JIRA. Consequently, Atlassian cannot guarantee providing any support for it. Please be aware that this material is provided for your information only and using it is done so at your own risk.
PS : This article includes a Workaround as well as a Resolution section. Please follow any one of them.
Workaround
Configuring cache timeouts on the proxy level
If the application is published from a Reverse Proxy, configure cache timeouts as shown in the below example.
An example for Apache httpd using mod_expires:
LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so
Make sure it is enabled
Control the caching headers sent to the client browser:
ExpiresActive On ExpiresDefault "access plus 300 seconds" <Directory "/"> ExpiresByType text/html "access plus 1 day" ExpiresByType text/css "access plus 1 day" ExpiresByType text/javascript "access plus 1 day" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/png "access plus 1 month" </Directory>
Resolution
Configuring caching at the browser level
Add the following Valve tag to the Jira Context element (eg in server.xml
or conf/Catalina/localhost/Jira.xml
) will restore normal client side caching:
<Valve className="org.apache.catalina.authenticator.FormAuthenticator" securePagesWithPragma="false" />