Configuring virtual hosts

Virtual hosts let you manage a single application server on a single machine as if the application server were multiple application servers each on their own host machine. You can separate and control which resources are available for client requests by combining multiple host machines into a single virtual host, or by assigning host machines to different virtual hosts.

Before you begin

If your external HTTP server configuration uses the default port, 9080, you do not have to perform these steps.

About this task

Virtual hosts isolate and independently manage multiple sets of resources on the same physical machine. Resources associated with one virtual host cannot share data with resources associated with another virtual host. This is true even though the virtual hosts share the same application server on the same physical machine.

For example, suppose that:
  • An Internet service provider (ISP) has two customers with Internet sites hosted on the same machine. The ISP keeps the two sites isolated from one another, despite their sharing a machine, by using virtual hosts. The ISP associates the resources of the first company with VirtualHost1 and the resources of the second company with VirtualHost2. Both virtual hosts map to the same application server.
  • Both company sites offer the same servlet. Each site has its own instance of the servlet, and is unaware of the same servlet on the other site. If the company whose site is organized on VirtualHost2 is past due in paying its account with the ISP, the ISP can refuse all servlet requests that are routed to VirtualHost2. Even though the same servlet is available on VirtualHost1, the requests directed at VirtualHost2 do not go to the other virtual host.

Because the servlet is associated with a virtual host instead of the actual DNS address, The servlet on virtual host VirtualHost1 does not share its context with the servlet that has the same name on virtual host VirtualHost2. Requests for the servlet on VirtualHost1 can continue as usual, even though VirtualHost2 is refusing to fill requests for the servlet with the same name.

If any of the following conditions exist, you must update the HTTP port numbers associated with the default virtual host. or define a new virtual host and associate it with the ports your HTTP server configuration uses:

  • Your external HTTP server configuration uses a port other than the default port of 9080, you must define the port that you are using.
  • You are using the default HTTP port 9080, but the port is no longer defined. You must define port 9080.
  • You have created multiple stand-alone application servers, and these servers use the same virtual host. Because each server must be listening on a different port, you must define a virtual host alias for the HTTP port of each server.

If you define new virtual host aliases, identify the port values that the aliases use on the Host alias settings page in the administrative console.

Perform the following steps to create a new virtual host or change the configuration of an existing virtual host.

Procedure

  1. In the administrative console, click Environment > Virtual hosts.
  2. Optional: Create a new virtual host.
    If you create a new virtual host, a default set of 90 MIME entries are automatically created for that virtual host.
    1. In the administrative console, click New.
    2. Enter the name of the new virtual host and click OK.
      The new virtual host appears in the list of virtual hosts you can configure.
  3. Select the virtual host whose configuration you want to change.
  4. Under Additional Properties, click Host aliases.
  5. Create new host aliases or update existing host aliases to associate each of your HTTP port numbers with this virtual host.

    There must be a virtual host alias corresponding to each port your HTTP server configuration uses. There is one HTTP port associated with each web container, and it is usually assigned to the virtual host named default_host. You can change the default assignment to any valid virtual host.

    The host aliases associated with the default_host virtual host are set to * when you install the product. The * (an asterisk) indicates that the alias name does not have to be specified or that any name can be specified.

    When the URL for the application is entered into a web browser, the port number is included. For example, if 9082 is the port number, the specified URL might look like the following:
    http://localhost:9082/wlm/SimpleServlet

    To create a new host alias:

    1. Click New.
    2. Specify a host alias name in the Host Name field and one of your HTTP ports in the Port field.

      You can specify * (an asterisk) for the alias name if you do not want to require the specification of the alias name or if you want to allow any name to be specified.

    3. Click OK and Save to save your configuration change.
    To update an existing host alias:
    1. Select an existing host alias name.
    2. Change the value specified in the Port field to one of your HTTP ports.
    3. Click OK and Save to save your configuration change.
  6. Optional: Define a MIME object type and its file name extension if you require a MIME type other than the pre-defined types.
    1. For each needed MIME entry on the MIME type collection page, click New.
    2. On the MIME type settings page, specify a MIME type and extension.
    3. Click OK and Save to save your configuration change.
  7. Regenerate the web server plug-in configuration.
    1. Servers > Server Types > Web servers, then select the appropriate web server.
    2. Click Generate plug-in, then click Propagate plug-in.
  8. Restart the application server.