Microsoft IIS 10.0 – Installing HTTP/2 on IIS 10.0

How to configure nginx for wordpress

In this recipe, we are going to set up HTTP/2 and enable the logging option through IIS 10.0. We will also cover how and where we can perform the necessary changes in the registry.

Let’s cover the installation and configuration in detail.

Getting ready

To step through this recipe, you will need a running IIS 10.0 server and an administrator account, which will be used to make changes in IIS 10.0 and Windows Registry.

How to do it…

  1. Open Server Manager on Windows Server 2016. Click on the Tools menu and open IIS Manager.
  2. Click on the IIS server ( WIN2016IIS); you will get the feature view. Find out the Logging setting, as shown in the following figure. You can configure it using Logging on your web server or website to record information about HTTP requests and errors. The information in your log can help you troubleshoot or optimize your website.
  1. Double-click on Logging. You will see in the next figure that Site is selected as the default log file type, and the Log File format is W3C, with a lot of fields as options.
  1. Logging configuration steps help us trace log files and check website access through HTTP or HTTP/2.
  2. As shown in the figure, One log file per Site means each website has its own log file. Hence, it will be easy to use the log file information. We have an option to select the log file for the server, so it will create one log file for your server. This means that if you have hosted many websites per server and you have one log file for that site, it could be very difficult to trace the log information. That’s why we have selected site-wise log files–there are a lot of options available in W3C logging fields to identify using Hostname, IP address, and port as well as Client IP address, and so on. We’ve just verified our recommended selection.



  1. Now you have the option to choose a log file Format; the default selected is W3C. Now we have to enable one of the protocols.
  2. Click on the Select fields… option, and you will get the W3C Logging Fields window, as shown here:
  1. You have to mark the checkbox for Protocol Version. Protocol Version will generate the log file entry for HTTP/1.1 and HTTP/2. Server Request will generate a site-wise log file for the website and also log the protocol version to the log file as per the client’s requested protocol version. You can see the details of this log at C:\inetpub\logs\LogFiles.



  1. Now we have to make a registry entry for HTTP/2. Internet Explorer is connected to IIS Server over TLS, which negotiates HTTP/2 via TLS extensions, so you do not need to make any changes on the server side. This is because the h2-14 header specifying the use of HTTP/2 Draft 14 is sent by default over TLS .

The protocol version option, which we checked, will generate the log file for website access with either the HTTP or HTTP/2 protocols.

  1. Command Prompt, type regedit as shown in the screenshot, and press Enter. Make sure Command Prompt is running with administrator authentication by right-clicking on its icon and selecting the Run as Administrator option.
  1. It will open the Windows registry editor:
  1. Expand the HKEY_LOCAL_MACHINE registry key, the SYSTEM folder, the CurrentControlSet folder, and the Services folder in succession. Expand HTTP and select the Parameters folder.
  2. You have to create a new registry entry QWORD value named DuoEnabled inside the Parameters folder. Right-click on the Parameters pane and create a QWORD entry:
  1. You can see a value named DuoEnabled with value data 1. Select Base as Hexadecimal. Click on OK.
  1. Close the Registry Editor and reboot.
  2. You have successfully completed the setup of HTTP/2.

How it works…

In this recipe, we first opened IIS Manager and set up logging settings to trace the website access log. Logging is nothing but writing information about website activity to a log file. We enabled the protocol version, which will help us get website-access activity information regarding HTTP and HTTP/2.

We then opened Registry Editor and made an entry called DuoEnabled, which will work for the HTTP/2 protocol.

Comments are closed.