BEA Logo BEA WebLogic Server Release 5.0

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

Installing the Microsoft-IIS (proxy) plug-in

Installing the library
Modifying the IIS setup to proxy to WebLogic
Creating the iisproxy.ini file
Proxying by file extension
Sample .ini file
Proxying servlets from IIS to the WebLogic Server
Testing the installation
Change history

Described here is how to install and configure the WebLogic plug-in to a Microsoft Internet Information Server. The plug-in allows a smooth integration of WebLogic's HTTP functionality into Microsoft IIS. Using the WebLogic-to-IIS plug-in enhances an existing Microsoft installation by providing a way to access WebLogic's servlet engine transparently.

The plug-in is intended for use in an environment where an IIS serves static pages, and another part of the document tree (dynamic pages best generated by HTTP Servlets) is delegated to a WebLogic Server operating in a different process, possibly on a different host. To the end user -- the browser -- the HTTP requests delegated to WebLogic still appear to be coming from the same source; WebLogic on the back-end is invisible. The HTTP-tunneling facility of the WebLogic client-server protocol may also operate through the plug-in, providing access to all WebLogic services, not only HTTP servlets.

WebLogic ISAPI is available for IIS version 4.0 running on a Microsoft NT 4.0 or Microsoft NT Server 4.0.

Installing the library

WebLogic ISAPI is distributed as the dynamic-link library "iisproxy.dll" for NT. This file is located in the weblogic/bin directory of the distribution.

To install the ISAPI plug-in:

  1. Start WebLogic.
  2. Start IIS.
  3. Modify the IIS setup according to the instructions below.
  4. Create an initialization file.
  5. Test the installation.

Modifying the IIS setup to proxy to WebLogic

You will need to configure your IIS installation for use with WebLogic ISAPI.

  1. Start the IIS Internet Service Manager by selecting it in the Microsoft IIS Start menu.

  2. In the left panel of the Service Manager, select your website (the default is "Default Web Site").

    IIS Service Manager

  3. Click the "Play" arrow in the toolbar to start.

  4. Open the properties for the selected website by holding the right mouse button down over the website selection in the left panel. In the Properties panel, select the Home Directory tab, and click the Configuration button in the Applications Settings section.

    Home Directory tab

  5. On the App Mappings tab, click the Add button to add file types and configure them to be proxied to WebLogic.

    Adding a file type for proxying

  6. In the dialog box, browse to find the "iisproxy.dll" file. By default, this file is located in the WebLogic distribution in the weblogic/bin directory. Set the Extension to the type of file that you want to proxy to WebLogic. Unclick the "Script engine" check box. Unclick the "Check that file exists" check box. Set the Method exclusions to suit your installation's security practices.

    Setting up file types for proxy

    When you have finished, click the OK button to save the configuration. Repeat this process for each file type you want to proxy to WebLogic.

    Note that, unlike the NSAPI plug-in that can be configured to serve files based on directory structure, the ISAPI plug-in can only be configured to serve files based on file type (file extension). In general, you will most likely want to configure IIS to proxy files with JHTML and JSP extensions.

    JHTML and JSP configured for proxy

    When you have finished configuring file types, click the OK button to close the Properties panel.

Creating the iisproxy.ini file

You will need to create a .ini file for the iisproxy.dll. Beginning with the 3.1.4 release of WebLogic Server, the destination location of this file is no longer the same directory as the DLL. You should place the .ini file in the root directory of your WebLogic installation, for example weblogic/iisproxy.ini.

The initialization file contains name=value pairs for these variables:

WebLogicHost=domain name
WebLogic host to which HTTP requests should be forwarded. For example, "WebLogicHost=localhost".

WebLogicPort=port
Port at which WebLogic host is listening for WebLogic connection requests. For example, "WebLogicPort=7001".

WebLogicCluster=cluster list
List of WebLogic Servers that can be used in a cluster for simple load-balancing. The cluster list is a comma-delimited list of host:port entries, for example "myweblogic.com:7001,yourweblogic.com:6999".

The plug-in will do simple round-robining between all available cluster members. There is static support only. No dynamic updating of the cluster list is performed. When a member cannot be reached it is marked as "bad" (but is not forgotten), and another member is tried instead; after 10 skips, the member is tried again, and if successful, its status is changed.

The plug-in will direct HTTP requests containing a cookie to the server in the cluster that originally created the cookie.

ConnectTimeoutSecs=seconds
Maximum interval (in seconds) that the module should attempt to connect to the WebLogic host. Defaults to 10 seconds, and should be greater than ConnectRetrySecs. If ConnectTimeoutSecs expires without a successful connection, even after the appropriate retries (see ConnectRetrySecs) an HTTP 503/Service Unavailable response is sent to the client. For example, "ConnectTimeoutSecs=20".

ConnectRetrySecs=seconds
Interval (in seconds) that the module should sleep between attempts to connect to the WebLogic host. Defaults to 2 seconds, and this number should always be less than the ConnectTimeoutSecs. The plug-in will try ConnectTimeoutSecs/ConnectRetrySecs times to connect before returning an HTTP 503/Service Unavailable response to the client. To never retry, set ConnectRetrySecs to equal ConnectTimeoutSecs. For example, "ConnectRetrySecs=5".

ErrorPage=url
You may create your own error page that will be displayed when IIS is unable to forward requests to WebLogic Server. Set url to the location of your error page.

CookieName=cname
If you change the name of the WebLogic session cookie in the WebLogic Server, you need to add this property to the iisproxy.ini file. The name of the WebLogic session cookie is set in the weblogic.properties file using the weblogic.httpd.session.cookie.name property. For more details, see the Administrators Guide, Setting up WebLogic as an HTTP server.

Proxying by file extension

The ISAPI module can only proxy files that correspond to the types registered for proxying in the Internet Service Manager. If you have registered types ".jhtml" and ".jsp" for proxying, all requests with the extension ".jhtml" or ".jsp" will be proxied to WebLogic.

Whatever other path information you add to the URL after the server and port is passed directly to WebLogic. For example, if you request a file from IIS with the URL "http://myiis.com:80/jspfiles/myfile.jsp", it will be proxied to WebLogic with a URL such as:

  http://WebLogic:7001/jspfiles/myfile.jsp

Sample .ini file

Here is a sample iisproxy.ini file. Comment lines are denoted with the "#" (hatch) character.

# This file contains initialization name/value pairs
# for the IIS/WebLogic plug-in.
WebLogicHost=localhost
WebLogicPort=7001
WebLogicCluster=myweblogic.com:7001,yourweblogic.com:6999
ConnectTimeoutSecs=20
ConnectRetrySecs=2

Proxying servlets from IIS to the WebLogic Server

There are three additional steps you must take to proxy servlets to the WebLogic Server:

  1. Register an arbitrary file type (extension) with IIS to proxy the request to the WebLogic Server, as described above under Modifying the IIS setup to proxy to WebLogic.

  2. Register the servlet in the weblogic.properties file. For example,
      weblogic.httpd.register.virtualName=
           examples.servlets.myServlet
    where virtualName is the virtual name for the servlet and examples.servlets.myServlet is the full package name of the class file to be invoked. For more information on registering servlets, see Registering user-written servlets.

  3. Invoke your servlet with a URL formed according to this pattern:
        http://www.myserver.com/virtualName/anyfile.ext
    where virtualName is the virtual name associated with the servlet in the weblogic.properties file. and ext is a file type (extension) registered with IIS for proxying to the WebLogic server. The anyfile part of the URL will be ignored in this context.

    Note:

    • You must also proxy all image links called from the servlet by registering the appropriate file types (e.g. .gif and .jpg) with IIS.

    • If the servlet being proxied has links that call other servlets, then these links must also conform to the pattern shown above.

Testing the installation

Once you have installed and configured the ISAPI plug-in, you follow these steps for deployment and testing:

  1. Make sure WebLogic and IIS are running.

  2. To test the ISAPI plug-in, save a JSP file into your document root (defaults to weblogic/myserver/public_html). Then open a browser and set the URL to the IIS + filename.jsp as shown in this example:
    http://myii.server.com/filename.jsp

Change history

Release 4.0.1

Fixed a problem with iisproxy.dll so that it uses the correct WebLogic registry key to locate its configuration file.

Release 4.0.0

Added functionality for simple load-balancing. The configuration information for both can now take an additional parameter, "WebLogicCluster," the value of which is a comma-delimited list of host:port entries, for example "myweblogic.com:7001,yourweblogic.com:6999,theirweblogic.com:6001". The plug-ins will do simple round-robining between all available cluster members (in this release there is static support only, no dynamic updating of the cluster list is done). When a member cannot be reached it is marked as "bad" (but is not forgotten), and another member is tried instead; after 10 skips, the member is tried again, and if successful, its status is changed.

Changed some configuration parameter names for the NSAPI obj.conf and ISAPI iisproxy.ini files from "Tengah" to "WebLogic". This shouldn't require any changes in your code, although we do recommend that you update your development environment. As always, changes are backwards compatible.

Release 3.1.2

First release.

 

Copyright © 2000 BEA Systems, Inc. All rights reserved.
Required browser: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.
Last updated 04/05/1999