Using Microsoft® IIS
Using Microsoft® IIS
IIS as a loadbalancer
TODO
IIS as a reverse proxy
These steps allow to "integrate" Rundeck with IIS. This could be necessary for example for these user cases:
- to get Rundeck through the port 80 in a subdirectory of IIS (e.g. http://yoursite/rundeck)
- when It is already set up a SSL certificate for a site and you want to reuse it without fiddling with the java certstore
If you are at least on 2008R2, you can install the ARR extension to proxy requests to the Jetty instance. To do so, we need first to modify the port rundeck is running and specify the "prefix" for all urls generated by rundeck. Also, to avoid that anyone bypass IIS, rundeck must listen only on 127.0.0.1.
Modify the %RDECK_BASE%\start_rundeck.bat
port (81) and host (127.0.0.1) as follows:
set CURDIR=%~dp0
call %CURDIR%etc\profile.bat
java %RDECK_CLI_OPTS% %RDECK_SSL_OPTS% "-Dserver.http.host=127.0.0.1" "-Dserver.http.port=81" -jar rundeckpro-launcher-XXXX-X.X.X.jar --installonly
But you can also put options in %RDECK_BASE%\etc\profile.bat (in this case the "prefix" and the little bit that makes rundeck work behind a reverse proxy) as long as you define all of them.
set RDECK_CLI_OPTS=-Xmx4096m -Xms1024m "-Drundeck.jetty.connector.forwarded=true" "-Dserver.web.context=/rundeck"
You will need to modify %RDECK_BASE%\server\config\rundeck-config.properties
, as grails.serverURL
is needed to be the absolute url:
grails.serverURL=http://yoursite/rundeck
Now, in IIS, (at the site level) create an URL Rewrite rule as follows:
- add inbound rule
- name: route_to_rdeck (or whatever you prefer) matches the pattern (using regular expression): rundeck.* (or a regex matching your "prefix")
- action type: rewrite
- rewrite url: http://127.0.0.1:81/{R:0}
- check append query string
Then, any request coming to http://yoursite/rundeck
will be proxying to your rundeck instance running on port 81 on the same server, and you'll be sure that every request will come in only proxyied by IIS, since rundeck is only listening to 127.0.0.1.
Troubleshooting
If the rewrite module does not work, go to the Application Request Routing settings on the IIS home, and enable the proxy.