Integrating IIS with JIRA or Confluence Results in HTTP 500 Error

While I was setting up our internal JIRA and Confluence instances, I wanted to give them “proper” URLs, such as jira.fooproject.com and confluence.fooproject.com. We use Microsoft’s IIS web server for all of our other websites, so we wanted to use this as a reverse proxy. Atlassian has instructions for doing this, which I dutifully followed. The result? This:

jira-500-error

After googling away for several hours, I was stumped. Nobody else was having the same issue I was. It was obvious that the request was never getting as far as the actual JIRA or Confluence web service – the problem was very much with IIS.

Eventually, I found the solution: bad file permissions (isn’t it always?). I had forgotten that the configuration for an IIS website is not stored in a database or the registry; it is stored in the file system, in the subfolder for that IIS website (in the web.config file, for the curious). By not setting file permissions on the website’s subfolder correctly, IIS wasn’t able to read the web.config file, which contained the URL rewrite information.

The final solution is to add the Read permission for Everyone on the website’s subfolder:

confluence-file-permissions

Viola!

Leave a Reply

Your email address will not be published. Required fields are marked *