You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Proxy server rejects requests from ARR to back-end servers
12
12
13
-
This article provides troubleshooting guidance for a scenario in which a proxy server is placed between an Application Request Routing (ARR) server and its back-end servers. The ARR server acts as a load balancer and the back-end servers comprise the ARR server farm that the ARR module is routing requests to. In this scenario, the proxy server might reject the requests from ARR as incorrectly formatted.
13
+
This article provides troubleshooting guidance for a scenario in which a proxy server is placed between an Application Request Routing (ARR) server and its back-end servers. The ARR server acts as a load balancer. The back-end servers comprise the ARR server farm that the ARR module is routing requests to. In this scenario, the proxy server might reject the requests from ARR as incorrectly formatted.
14
14
15
15
## Symptoms
16
16
17
-
When your ARR server routes a request to a back-end server that's on a different network, the request might have to transit through a proxy server to reach the other network. When the proxy server process the request to be routed to the back-end servers in the ARR farm, the following events might occur:
17
+
When your ARR server routes a request to a back-end server that's on a different network, the request might have to transit through a proxy server to reach the other network. When the proxy server processes the request to be routed to the back-end servers in the ARR farm, the following events occur:
18
18
19
-
- The proxy server rejects the request and returns an `HTTP 400 Bad Request` status code with an error message that the requested URL is invalid.
20
-
- When the ARR server receives the `HTTP 400 Bad Request` status code from the proxy server, it returns the same `HTTP 400 Bad Request` status code and the following error message to the client that initiated the request:
19
+
- The proxy server rejects the request and returns an `HTTP 400 Bad Request` status code together with an error message that states that the requested URL is invalid.
20
+
- When the ARR server receives the `HTTP 400 Bad Request` status code from the proxy server, it returns the same `HTTP 400 Bad Request` status code. It also returns the following error message to the client that initiated the request:
21
21
22
22
> Some aspect of the requested URL is incorrect.
23
23
24
24
## Cause
25
25
26
26
> [!IMPORTANT]
27
-
> Some proxy servers are less strict about their implementation of the RFC specification. You might not experience rejected requests from these servers, even without adding the proxy server to your ARR configuration. However, this behavior is nonstandard and subject to change across proxy server implementations.
27
+
> Some proxy servers are less strict about their implementation of the RFC specification. You might not experience rejected requests from these servers, even if you don't add the proxy server to your ARR configuration. However, this behavior is nonstandard and subject to change across proxy server implementations.
28
28
29
-
When your ARR server routes a request to a back-end server on the same network, the ARR server can reach the backend server directly. For example:
29
+
When your ARR server routes a request to a back-end server on the same network, the ARR server can reach the back-end server directly, as shown in the following screenshot.
30
30
31
31
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/normal-network-layout.png" alt-text="Network diagram of the typical ARR and back-end server configuration when on the same network":::
32
32
33
-
However, if your back-end server is on a different network than your ARR server, your ARR server might have to route requests to the back-end server through a proxy server. For example:
33
+
However, if your back-end server is on a different network than your ARR server, your ARR server might have to route requests to the back-end server through a proxy server, as shown in the following screenshot.
34
34
35
35
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/proxy-network-layout.png" alt-text="Network diagram of the ARR and back-end server configuration when on a different network, using a proxy server to transit request between networks":::
36
36
@@ -46,35 +46,35 @@ According to [section 5.3.2 of RFC 7230](https://datatracker.ietf.org/doc/html/r
46
46
http://www.contoso.com/mywebapp/mypage.aspx
47
47
```
48
48
49
-
Some proxy servers allow requests that use relative URLs, but this behavior is an inconsistent across different proxy servers. In all cases, we recommend you configure your ARR server to properly route requests through the proxy server per the steps in [Solution](#solution).
49
+
Some proxy servers allow requests that use relative URLs, but this behavior is an inconsistent across different proxy servers. In all cases, we recommend that you configure your ARR server to properly route requests through the proxy server according to the steps in [Solution](#solution).
50
50
51
51
## Solution
52
52
53
-
To configure your ARR server correctly to direct back-end requests through a proxy server, follow these steps:
53
+
To configure your ARR server to correctly direct back-end requests through a proxy server, follow these steps:
54
54
55
55
1. Start Internet Information Services (IIS) Manager.
56
-
1. Select your IIS server node from the **Connections** side pane, then select the **Configuration Editor** in the main pane.
56
+
1. Select your IIS server node from the **Connections** side pane, then select **Configuration Editor** in the main pane.
57
57
58
58
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/open-configuration-editor.png" alt-text="IIS Manager showing a server node as selected in the Connections pane.":::
59
-
1. Inside the Configuration Editor, select the **webFarms** node from the **Section** list to display all configured ARR server farms.
59
+
1. Inside Configuration Editor, select the **webFarms** node from the **Section** list to display all configured ARR server farms.
60
60
61
61
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/configuration-editor-section-dropdown.png" alt-text="IIS Manager showing the Configuration Editor pane open. The Section list in the Configuration Editor is expanded and the webFarms section is selected.":::
62
62
1. Open the **Collection Editor** window by selecting the ellipsis button (...) to the right of the **(Collection)** field.
63
63
64
64
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/web-farm-collection-editor-button.png" alt-text="IIS Manager showing the Configuration Editor pane open. The ellipsis button to the right of the (Collection) field is highlighted.":::
65
65
1. In the **Collection Editor** window, select the farm that you want to configure from the **Items** pane. Details of the selected farm are displayed in the **Properties** pane.
66
66
67
-
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-select-farm.png" alt-text="The IIS Manager Collection Editor window showing the first webFarm highlighted in the Items pane of the Collection Editor.":::
67
+
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-select-farm.png" alt-text="The IIS Manager Collection Editor window showing the first webFarm as highlighted in the Items pane of the Collection Editor.":::
68
68
1. In the **Properties** pane, navigate to the **applicationRequestRouting** > **protocol** > **proxy** node.
69
69
70
-
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-proxy-property.png" alt-text="The IIS Manager's Collection Editor window showing the proxy node highlighted in the Properties pane.":::
70
+
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-proxy-property.png" alt-text="The IIS Manager Collection Editor window showing the proxy node as highlighted in the Properties pane.":::
71
71
1. In the **proxy** node, enter the host and port of the proxy server that ARR should direct back-end requests through.
72
72
73
-
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-proxy-added.png" alt-text="The IIS Manager's Collection Editor window showing that the proxy node in the Properties pane is set to localhost:8888.":::
73
+
:::image type="content" source="./media/proxy-server-rejects-back-end-requests/collection-editor-proxy-added.png" alt-text="The IIS Manager Collection Editor window showing that the proxy node in the Properties pane is set to localhost:8888.":::
74
74
1. Close the **Collection Editor** window.
75
75
1. In the **Actions** pane of the IIS Manager window, select **Apply** to finalize the configuration change.
0 commit comments