# Reverse proxy on Windows IIS

Windows IIS can be configured to act as a **reverse proxy server**. There are a few pretty outdated guidelines available on the official Microsoft documentation where you can find additional information.

* [Reverse Proxy with URL Rewrite v2 and Application Request Routing](https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing)
* [Setup IIS with URL Rewrite as a reverse proxy for real world apps](https://docs.microsoft.com/en-us/archive/blogs/friis/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps)

### Install IIS extensions <a href="#reverseproxyonwindowsiis-installiisextensions" id="reverseproxyonwindowsiis-installiisextensions"></a>

To set up a reverse proxy routing capabilities for IIS, first of all, you need to download and install two additional extensions:

* [URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite)
* [Application Request Routing (ARR)](https://www.iis.net/downloads/microsoft/application-request-routing)

After successful installation of extensions, two additional options, **URL Rewrite** and **Application Request Routing**, will appear on the IIS dashboard.

### Enable proxy settings - ARR <a href="#reverseproxyonwindowsiis-enableproxysettings-arr" id="reverseproxyonwindowsiis-enableproxysettings-arr"></a>

The IIS proxy setting is disabled by default. You need to enable it.

1\. Open IIS Manager.

2\. In the **Feature View** section, double click on **Application Request Routing.**

<figure><img src="/files/TlasOA4HmjIflUiL5Bnt" alt=""><figcaption></figcaption></figure>

3\. On the right sidebar under the **Proxy** section, select **Server Proxy Settings**... action.

<figure><img src="/files/b3wjJ8tTCxLTGgBhGWdE" alt=""><figcaption></figcaption></figure>

4\. Check **Enable proxy** check box. And then on the right sidebar with actions, click **Apply** to save changes.

<figure><img src="/files/drozN0XtLEVN5jgzqeBK" alt=""><figcaption></figcaption></figure>

### URL Rewrite <a href="#reverseproxyonwindowsiis-urlrewrite" id="reverseproxyonwindowsiis-urlrewrite"></a>

To create a new inbound rule, follow these steps:

1\. Go to the IIS Manager, find **Default Web Site** and select **wscservice** virtual directory (for older versions it may differ, e.g. **spellcheck**) assuming that WebSpellChecker is deployed there.

2\. In the Feature View, click **URL Rewrite**.

<figure><img src="/files/jq2Jb2OKnzmjiHkBsZdC" alt=""><figcaption></figcaption></figure>

3\. Click on **Add Rule(s)...** on the right sidebar with actions.

<figure><img src="/files/wcpd2600EmS1g3rcMjn0" alt=""><figcaption></figcaption></figure>

4\. In the **Add rule(s)** dialog, select **Blank rule** template for inbound rules and click **OK**.

5\. Create **Inbound rule** for the parent website with the following settings:

* Pattern: **api(.\*)**
* Check the **Ignore case** box.
* Rewrite URL: **<http://localhost:2880/{R:1}>** where **<http://localhost:2880/>** is the path to the application server which listens to the 2880 port and **{R:1}.**

If you previously configured the SSL connection for AppServer, e.g. accessed the service entry point via [http**s**://localhost:2880/](https://localhost:2880/), it is highly recommended to disable this configuration and rely on the SSL management on IIS. To disable SSL connection for AppServer, go to **AppServerX.xml** file, locate **EnableSSL** tag and change its value to **false**. to apply changes, restart AppServer.

6\. Check **Append query string** check box.

7\. Check **Stop processing of subsequent rules** check box.

8\. Once all is done, click **Apply Rule**.

### Verification <a href="#reverseproxyonwindowsiis-verification" id="reverseproxyonwindowsiis-verification"></a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wproofreader.com/v6.12.0/deployment/configuration/web-server/reverse-proxy-setup-to-avoid-exposing-2880-port/reverse-proxy-on-windows-iis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
