Can IIS be configure to forward request to another web server?
I have several web site set up on one IIS 6 server distinguished by Host Header.
However, I wish to have one of the sites served by a Linux / Apache server on my network. Do I need to use a reverse proxy add-in for IIS, or is there a simple way to tell IIS to pass on all requests to another server?
For IIS 7.5, Microsoft provides official modules for this!
- URL Rewrite: http://www.iis.net/download/URLRewrite
- Reverse proxy: http://www.iis.net/download/ApplicationRequestRouting
In the site settings, you'll get an "URL Rewrite" icon.
- Open it
- right click on the "inbound rules list"
- Select "Add Rule(s)"
- Choose "Reverse proxy"
In this dialog you can enter the hostname + port to forward to. After adding the rule, opening the edit dialog offers more customizations.
I'm using a third-party software for Windows (IIS) for this purpose, which - besides other things like URL rewriting - does this job pretty well: ISAPI Rewrite.
ISAPI Rewrite is a powerful URL manipulation engine based on regular expressions. It acts mostly like Apache's mod_Rewrite, but is designed specifically for Microsoft's Internet Information Server (IIS). ISAPI Rewrite is an ISAPI filter written in pure C/C++ so it is extremely fast. ISAPI_Rewrite gives you the freedom to go beyond the standard URL schemes and develop your own scheme.
Search for "Proxying". Here is the documentation for the RewriteProxy Rule.
There is also a very similar open-source project: Ionic's Isapi Rewrite Filter.
No, not on IIS 6. Look at using nginx/ubuntu (or even nginx on windows) as a reverse proxy in front of your IIS6 server. We had to use IIS7.5 for reverse proxy features