Setup IIS
In order to use IIS as a reverse proxy, the rewrite module must be installed. This can be done by downloading it from the microsoft website
To get rewrite(Not only redirect) working, the application request routing must be installed as well from the microsoft website
Now the Application Request Routing must be configured in IIS manager. It's as simple as checking the Enable proxy checkbox.
Now a new website must be added in IIS pointing to an empty directory. In order for IIS to act properly as a proxy, this website must be bound to a host name. (For this demo and since I don't have a hostname, I just added a entry into the host file of the computer)
When now connecting to this site, noting must be shown since there is no content in the configured folder.
Next step is to setup the rewrite rule.
Setup rewrite rule in IIS
Add a new Blank rule via URL rewrite
The rule must look like the following sample.
This is the corresponding web.config to the screenshot below:
<!--?xml version="1.0" encoding="UTF-8"?--> <configuration> <system.webserver> <rewrite> <rules> <rule name="test" patternsyntax="Wildcard" stopprocessing="true"> <match url="*"> <action url="http://proxytest.com:8080/{R:0}" type="Rewrite"> </action></match></rule> </rules> </rewrite> </system.webserver> </configuration>
Done
Now it's done. Requests sent to proxytest.com:80 will be rewritten from IIS to the address from rewrite URL.
With this configuration, it's possible to run IIS, Apache, Tomcat and many other webserver at the same time on the same server under the same port.
Note - If after doing all this, the rewrite doesn't work, Navigate to Programs and Features and select Repair on IIS URL Rewrite, it should all start working after that.