How You Can Use IIS7 as Web Front End to Java App Servers

Ask many server administrators if Microsoft’s IIS Web server can be used with Java servers, and you will probably hear a quick “No way!” with an optional sniff or chuckle, depending on your server preference. Starting with Windows Server 2008 and later, you can set up IIS7 as the Web serving tier in a three-tier deployment to IIS or Java servers on the backend.

Customers are taking advantage of this functionality today if they have an existing Java investment:

The key component is IIS Application Request Routing (ARR), which we ship as a fully supported, free Web extension for Windows Server 2008 and later. If you have Windows Server 2008 or later, ARR 1.0 gives you:

  • IIS as an option in a three-tier configuration with WebLogic and TomCat backends. It should work with WebSphere too – if you try it, blog about it and let us know!
  • application load balancing that you can configure easily using rules
  • dynamic scale your Web app to different servers in a server farm, based on memory and other factors
  • rules-based ability to bind client requests to specific servers with cookies
  • centralized configuration management and health monitoring for nodes in a server

In the next few weeks, we will release ARR 2.0, which adds advanced support for Edge serving to distributed cache hierarchies. ARR 2.0 as a pre-release has been running in production for several major content delivery networks as a high-performance Squid alternative on the network Edge.

Useful links:


  • Hello,

    I have a question, just so I am clear. I have to point ARR to my other servers, say, http://local1/ and http://local2/ - I ask this because if I had to use Tomcat's own load balancing it would require ajp:// --

    Please tell me that ARR could be prove better than nginx. :)

    Can you tell if ARR will use non blocking I/O and multiple threads? And, will media streaming working behind ARR?


  • Hi, Sameer: Can you post your question in the ARR forum? That way, you get a threaded discussion going. Thanks!
    To the anon poster: Yes, there is a step by step document at:

  • ARR is a good starting point if you want to connect Apache Tomcat to IIS 7, however, there are some issues especially under load that make this less than ideal solution.
    a) There are still differences in the way headers are handled between ARR and Tomcat and not all are transferred.
    b) ARR will be heavier on the network as it requires that http data is transferred in full byte length without being able to take advantage of binary compression and byte encoding the AJP protocol offers.
    c) Under load ARR will not be aware of Tomcat thread handling resulting in unnecessarily dropped connections.
    d) Secure (https) connections cannot be easily handled if tomcat needs to be aware of certificates used.

    Thus a true connector is needed if this is to be used in production. Unfortunately, not many choices in the market. The closest thing in active development is the open source boncode connector:


Comments have been disabled for this content.