Compartir a través de


Using HTTP/2 with ARR and IIS 10

This article has been moved to its new home here: https://benperk.github.io/msdn/2016/2016-01-using-http2-with-arr-and-iis-10.html

I was asked a question about if the Application Request Router supports the HTTP 2 protocol on IIS 10 (not sure what it will be called).  I was pretty confident that it did, but nothing beats a test to confirm it.  So that is what I did.  I used this article here that contains some good information about HTTP/2 on IIS 10.  As I read through the instructions, the only requirement for using the HTTP/2 protocol is that the request is made over HTTPS.  And of course, you need IIS 10…

I found no difference in the setup of ARR on IIS 10, so this article here still seems to apply.  I prefer using the Web Platform Installer for adding IIS modules, but there are numerous techniques.

As shown in Figure 1, I created an ARR Server Farm called W2K16-IIS10

Figure 1, Using ARR on IIS 10 with http protocol version 2

On the Application Request Routing server (ARR), I added a binding for HTTPS on port 443 as shown in Figure 2.

Figure 2, SSL required for http protocol version 2 on IIS 10

To test and confirm that the HTTP/2 protocol is used, I access the ARR server using Microsoft Edge on Windows 10 and captured the Network trace using the F12 Developer Tools.  As you can see in Figure 3, HTTP/2 is shown in the Protocol column and thus supports my initial claim that ARR works with HTTP/2 on IIS 10.

Figure 3, Using the http/2 protocol over HTTPS from Microsoft Edge, to ARR on IIS 10

Comments

  • Anonymous
    January 14, 2016
    How about output rules ? For instance if we were to run rules against the output (such as tag match) which is binary in HTTP2,  will that work too ?

  • Anonymous
    February 04, 2016
    Hi Onurg, can you please provide a link to an example where this is described more and I will give it a try.

  • Anonymous
    September 07, 2016
    does it make sense to use only on ARR load balancer without upgrading application servers in the web farm to 2016 too? will it call backend servers as http/1 and translate to http/2? does it work with ssl offloading i.e. when backend servers handle only http (as http/2 is supposed to work only over https)?

    • Anonymous
      September 19, 2016
      The comment has been removed