16 Configuring Oracle HTTP Server for an Enterprise Deployment

When you configure the web tier, you have the option of using Oracle HTTP Server or Oracle Traffic Director. If you choose to use Oracle HTTP Server, then you must install Oracle HTTP Server on each of the web tier hosts and configure Oracle HTTP standalone domains on each host.

The Oracle HTTP Server instances on the web tier direct HTTP requests from the hardware load balancer to specific Managed Servers in the application tier.

Before you configure Oracle HTTP Server, be sure to review Understanding the Web Tier.

Note:

If you plan to configure Oracle Managed File Transfer, then you must configure Oracle Traffic Director to route FTP and SFTP requests over TCP.

Variables Used When Configuring the Oracle HTTP Server

As you perform the tasks in this chapter, you reference the directory variables that are listed in this topic.

The values for several directory variables are defined in File System and Directory Variables Used in This Guide.

  • WEB_ORACLE_HOME

  • WEB_DOMAIN_HOME

  • JAVA _HOME

In addition, you reference the following virtual IP (VIP) address and host names:

  • ADMINVHN

  • WEBHOST1

  • WEBHOST2

About the Oracle HTTP Server Domains

In an enterprise deployment, each Oracle HTTP Server instance is configured on a separate host and in its own standalone domain. This allows for a simple configuration that requires a minimum amount of configuration and a minimum amount of resources to run and maintain.

Note:

Oracle Fusion Middleware requires that a certified Java Development Kit (JDK) is installed on your system and JAVA_HOME is set on the web tier hosts.

For more information about the role and configuration of the Oracle HTTP Server instances in the web tier, see Understanding the Web Tier.

Installing a Supported JDK

Oracle Fusion Middleware requires that a certified Java Development Kit (JDK) is installed on your system.

Locating and Downloading the JDK Software

To find a certified JDK, see the certification document for your release on the Oracle Fusion Middleware Supported System Configurations page.

After you identify the Oracle JDK for the current Oracle Fusion Middleware release, you can download an Oracle JDK from the following location on Oracle Technology Network:

http://www.oracle.com/technetwork/java/index.html

Be sure to navigate to the download for the Java SE JDK.

Installing the JDK Software

Oracle Fusion Middleware requires you to install a certified Java Development Kit (JDK) on your system.

You must install the JDK in the following locations:

On the local storage device for each of the Web tier host computers. The Web tier host computers, which reside in the DMZ, do not necessarily have access to the shared storage on the application tier.

To install JDK 1.8.0_131:
  1. Change directory to the location where you downloaded the JDK archive file.
    cd download_dir
  2. Unpack the archive into the JDK home directory, and then run the following commands:
    tar -xzvf jdk-8u131-linux-x64.tar.gz
    Note that the JDK version listed here was accurate at the time this document was published. For the latest supported JDK, see the Oracle Fusion Middleware System Requirements and Specifications for the current Oracle Fusion Middleware release.
  3. Move the JDK directory to the recommended location in the directory structure.
    For example:
    mv ./jdk1.8.0_131 /u02/oracle/products/jdk
  4. Define the JAVA_HOME and PATH environment variables for running Java on the host computer.
    For example:
    export JAVA_HOME=/u02/oracle/products/jdk
    export PATH=$JAVA_HOME/bin:$PATH
  5. Run the following command to verify that the appropriate java executable is in the path and your environment variables are set correctly:
    java -verison
    The Java version in the output should be displayed as 1.8.0_131.

Installing Oracle HTTP Server on WEBHOST1

It is important to understand the procedure for installing the Oracle HTTP Server software on the web tier.

Starting the Installer on WEBHOST1

To start the installation program, perform the following steps.

  1. Log in to WEBHOST1.
  2. Go to the directory in which you downloaded the installation program.
  3. Enter the following command to launch the installation program:

    ./fmw_12.2.1.3.1_ohs_linux64.bin

    When the installation program appears, you are ready to begin the installation.

Navigating the Oracle HTTP Server Installation Screens

The following table lists the screens in the order that the installation program displays them.

If you need additional help with any of the installation screens, click the screen name.

Table 16-1 Oracle HTTP Server Installation Screens

Screen Description

Installation Inventory Setup

On UNIX operating systems, this screen appears if you install any Oracle product on this host for the first time. Specify the location where you want to create your central inventory. Ensure that the operating system group name selected on this screen has write permissions to the central inventory location.

See Understanding the Oracle Central Inventory in Installing Software with the Oracle Universal Installer.

Note:

Oracle recommends that you configure the central inventory directory within the products directory. Example: /u02/oracle/products/oraInventory

You may also need to execute the createCentralinventory.sh script as root from the oraInventory folder after the installer completes.

Welcome

This screen introduces you to the product installer.

Auto Updates

Use this screen to automatically search My Oracle Support for available patches or automatically search the local directory for patches that you have already downloaded for your organization.

Installation Location

Use this screen to specify the location of your Oracle home directory.

For the purposes of an enterprise deployment, enter the value of the WEB_ORACLE_HOME variable listed in Table 9-3.

Installation Type

Select Standalone HTTP Server (Managed independently of WebLogic server).

This installation type allows you to configure the Oracle HTTP Server instances independently from any other existing Oracle WebLogic Server domains.

JDK Selection

For the value of JDK Home, enter the value of JAVA_HOME that you set when installing the JDK software.

Prerequisite Checks

This screen verifies that your system meets the minimum necessary requirements.

If there are any warning or error messages, verify that your host computers and the required software meet the system requirements and certification information described in Host Computer Hardware Requirements and Operating System Requirements for the Enterprise Deployment Topology.

Installation Summary

Use this screen to verify the installation options that you selected. If you want to save these options to a response file, click Save Response File and provide the location and name of the response file. Response files can be used later in a silent installation situation.

See Using the Oracle Universal Installer in Silent Mode in Installing Software with the Oracle Universal Installer.

Installation Progress

This screen allows you to see the progress of the installation.

Installation Complete

This screen appears when the installation is complete. Review the information on this screen, then click Finish to close the installer.

Verifying the Oracle HTTP Server Installation

Verify that the Oracle HTTP Server installation completed successfully by validating the WEB_ORACLE_HOME folder contents.

Run the following command to compare the installed folder structure with the following list:

ls --format=single-column WEB_ORACLE_HOME

The following files and directories are listed in theOracle HTTP Server Oracle Home:

bin
cdata
cfgtoollogs
crs
css
cv
has
install
inventory
jlib
ldap
lib
network
nls
ohs
OPatch
oracle_common
oracore
oraInst.loc
oui
perl
plsql
plugins
precomp
QOpatch
racg
rdbms
slax
sqlplus
srvm
webgate
wlserver
xdk

Creating an Oracle HTTP Server Domain on WEBHOST1

The following topics describe how to create a new Oracle HTTP Server standalone domain on the first web tier host.

Starting the Configuration Wizard on WEBHOST1

To start the Configuration Wizard, navigate to the following directory and start the WebLogic Server Configuration Wizard, as follows:

cd WEB_ORACLE_HOME/oracle_common/common/bin
./config.sh

Navigating the Configuration Wizard Screens for an Oracle HTTP Server Domain

Oracle recommends that you create a standalone domain for the Oracle HTTP Server instances on each web tier host.

The following topics describe how to create a new standalone Oracle HTTP Server domain:

Task 1   Selecting the Domain Type and Domain Home Location

On the Configuration Type screen, select Create a new domain.

In the Domain Location field, enter the value assigned to the WEB_DOMAIN_HOME variable.

Note the following:

  • The Configuration Wizard creates the new directory that you specify here.

  • Create the directory on local storage, so the web servers do not have any dependencies on storage devices outside the DMZ.

Note:

Task 2   Selecting the Configuration Templates

On the Templates screen, select Oracle HTTP Server (Standalone) - 12.2.1.3.0 [ohs].

Tip:

More information about the options on this screen can be found in Templates in Oracle Fusion Middleware Creating WebLogic Domains Using the Configuration Wizard.

Task 3   Selecting the JDK for the Web Tier Domain.

Select the Oracle HotSpot JDK installed in the /u02/oracle/products/jdk directory prior to the Oracle HTTP Server installation.

Task 4   Configuring System Components

On the System Components screen, configure one Oracle HTTP Server instance. The screen should, by default, have a single instance defined. This is the only instance that you need to create.

  1. The default instance name in the System Component field is ohs1. Use this default name when you configure WEBHOST1.

  2. Make sure that OHS is selected in the Component Type field.

  3. If an application is not responding, use the Restart Interval Seconds field to specify the number of seconds to wait before you attempt a restart if an application is not responding.

  4. Use the Restart Delay Seconds field to specify the number of seconds to wait between restart attempts.

Task 5   Configuring OHS Server

Use the OHS Server screen to configure the OHS servers in your domain:

  1. Select ohs1 from the System Component drop-down menu.

  2. In the Listen Address field, enter WEBHOST1.

    All the remaining fields are prepopulated, but you can change the values as required for your organization. See OHS Server in Oracle Fusion Middleware Creating WebLogic Domains Using the Configuration Wizard.

  3. In the Server Name field, verify the value of the listen address and listen port.

    It should appear as follows:

    http://WEBHOST1:7777
Task 6   Configuring Node Manager

Select Per Domain Default Location as the Node Manager type, and specify the user name and password for the Node Manager.

Note:

For more information about the options on this screen, see Node Manager in Creating WebLogic Domains Using the Configuration Wizard.

For information about Node Manager configuration, see Configuring Node Manager on Multiple Machines in Administering Node Manager for Oracle WebLogic Server.

Task 7   Reviewing Your Configuration Specifications and Configuring the Domain

The Configuration Summary screen contains detailed configuration information for the domain that you are about to create. Review the details of each item on the screen and verify that the information is correct.

If you need to make any changes, you can go back to any previous screen either by using the Back button or by selecting the screen in the navigation pane.

Domain creation does not begin until you click Create.

In the Configuration Progress screen, click Next when it finishes.

Tip:

More information about the options on this screen can be found in Configuration Summary in Creating WebLogic Domains Using the Configuration Wizard.

Task 8   Writing Down Your Domain Home

The Configuration Success screen shows the domain home location.

Make a note of the information provided here, as you need it to start the servers and access the Administration Server.

Click Finish to close the Configuration Wizard.

Installing and Configuring an Oracle HTTP Server Domain on WEBHOST2

After you install Oracle HTTP Server and configure a domain on WEBHOST1, then you must also perform the same tasks on WEBHOST2.

  1. Log in to WEBHOST2 and install Oracle HTTP Server by using the instructions in Installing Oracle HTTP Server on WEBHOST1.

  2. Configure a new standalone domain on WEBHOST2 by using the instructions in Creating a Web Tier Domain on WEBHOST1.

    Use the name ohs2 for the instance on WEBHOST2, and be sure to replace all occurrences of WEBHOST1 with WEBHOST2 and all occurrences of ohs1 with ohs2 in each of the examples.

Starting the Node Manager and Oracle HTTP Server Instances on WEBHOST1 and WEBHOST2

It is important to understand how to start the Oracle HTTP Server instances on WEBHOST1 and WEBHOST2.

Starting the Node Manager on WEBHOST1 and WEBHOST2

Before you can start the Oracle HTTP Server instances, you must start the Node Manager on WEBHOST1 and WEBHOST2:

  1. Log in to WEBHOST1 and navigate to the following directory:
    WEB_DOMAIN_HOME/bin
    
  2. Start the Node Manager as shown in the following sections by using nohup and nodemanager.out as an example output file:
    nohup WEB_DOMAIN_HOME/bin/startNodeManager.sh > WEB_DOMAIN_HOME/nodemanager/nodemanager.out 2>&1 &
    
  3. Log in to WEBHOST2 and perform steps 1 and 2.

See Advanced Node Manager Configuration in Administering Node Manager for Oracle WebLogic Server.

Starting the Oracle HTTP Server Instances

To start the Oracle HTTP Server instances:

  1. Navigate to the following directory on WEBHOST1:
    WEB_DOMAIN_HOME/bin

    For more information about the location of the WEB_DOMAIN_HOME directory, see File System and Directory Variables Used in This Guide.

  2. Enter the following command:
    ./startComponent.sh ohs1

    Note:

    Every time you start the Oracle HTTP server, you will be asked for the Node Manager password. If you do not wish this behaviour, then use the following command the first time you start the Oracle HTTP server:

    ./startComponent.sh ohs1 storeUserConfig

    This time when you enter the Node Manager password, it will be encrypted and stored. Future start and stop of the Oracle HTTP server will not require you to enter the Node Manager password.

    Note:

    For more information, see Storing Your Node Manager Password.
  3. When prompted, enter the Node Manager password.
  4. Repeat steps 1 through 3 to start the ohs2 instance on WEBHOST2. See Starting Oracle HTTP Server Instances in Administering Oracle HTTP Server.

Backing Up the Configuration

It is an Oracle best practices recommendation to create a backup after you successfully extended a domain or at another logical point. Create a backup after you verify that the installation so far is successful. This is a quick backup for the express purpose of immediate restoration in case of problems in later steps.

The backup destination is the local disk. You can discard this backup when the enterprise deployment setup is complete. After the enterprise deployment setup is complete, you can initiate the regular deployment-specific Backup and Recovery process.

For information about backing up your configuration, see Performing Backups and Recoveries for an Enterprise Deployment.

Configuring Oracle HTTP Server to Route Requests to the Application Tier

It is important to understand how to update the Oracle HTTP Server configuration files so that the web server instances route requests to the servers in the domain.

About the Oracle HTTP Server Configuration for an Enterprise Deployment

The following topics provide overview information about the changes that are required to the Oracle HTTP Server configuration files in an enterprise deployment.

Purpose of the Oracle HTTP Server Virtual Hosts

The reference topologies in this guide require that you define a set of virtual servers on the hardware load balancer. You can then configure Oracle HTTP Server to recognize requests to specific virtual hosts (that map to the load balancer virtual servers) by adding <VirtualHost> directives to the Oracle HTTP Server instance configuration files.

For each Oracle HTTP Server virtual host, you define a set of specific URLs (or context strings) that route requests from the load balancer through the Oracle HTTP Server instances to the appropriate Administration Server or Managed Server in the Oracle WebLogic Server domain.

About the WebLogicCluster Parameter of the <VirtualHost> Directive

A key parameter of the Oracle HTTP Server <VirtualHost> directive is the WebLogicCluster parameter, which is part of the WebLogic Proxy Plug-In for Oracle HTTP Server. When you configure Oracle HTTP Server for an enterprise deployment, consider the following information when you add this parameter to the Oracle HTTP Server configuration files.

The servers specified in the WebLogicCluster parameter are important only at startup time for the plug-in. The list needs to provide at least one running cluster member for the plug-in to discover other members of the cluster. When you start the Oracke HTTP server, the listed cluster member must be running.. Oracle WebLogic Server and the plug-in work together to update the server list automatically with new, failed, and recovered cluster members.

Some example scenarios:

  • Example 1: If you have a two-node cluster and then add a third member, you do not need to update the configuration to add the third member. The third member is discovered on the fly at runtime.

  • Example 2: You have a three-node cluster but only two nodes are listed in the configuration. However, if both listed nodes are down when you start Oracle HTTP Server, then the plug-in would fail to route to the cluster. You must ensure that at least one of the listed nodes is running when you start Oracle HTTP Server.

    If you list all members of the cluster, then you guarantee you can route to the cluster, assuming at least one member is running when Oracle HTTP Server is started.

Recommended Structure of the Oracle HTTP Server Configuration Files

Rather than adding multiple virtual host definitions to the httpd.conf file, Oracle recommends that you create separate, smaller, and more specific configuration files for each of the virtual servers required for the products that you are deploying. This avoids populating an already large httpd.conf file with additional content, and it can make troubleshooting configuration problems easier.

For example, in a typical Oracle Fusion Middleware Infrastructure domain, you can add a specific configuration file called admin_vh.conf that contains the virtual host definition for the Administration Server virtual host (ADMINVHN).

Modifying the httpd.conf File to Include Virtual Host Configuration Files

Perform the following tasks to prepare the httpd.conf file for the additional virtual hosts required for an enterprise topology:

  1. Log in to WEBHOST1.

  2. Locate the httpd.conf file for the first Oracle HTTP Server instance (ohs1) in the domain directory:

    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/
    
  3. Verify if the httpd.conf file has the appropriate configuration as follows:

    1. Run the following command to verify the ServerName parameter, be sure that it is set correctly, substituting the correct value for the current WEBHOSTn:

      grep "ServerName http" httpd.conf   
      ServerName http://WEBHOST1:7777 
    2. Run the following command to verify there is an include statement that includes all *.conf files from the moduleconf subdirectory:

      grep moduleconf httpd.conf   
      IncludeOptional "moduleconf/*.conf"
    3. If either validation fails to return results, or returns results that are commented out, open the httpd.conf file in a text editor and make the required changes in the appropriate locations.

      # 
      # ServerName gives the name and port that the server uses to identify itself. 
      # This can often be determined automatically, but we recommend you specify 
      # it explicitly to prevent problems during startup. 
      # 
      # If your host doesn't have a registered DNS name, enter its IP address here. 
      # 
      ServerName http://WEBHOST1:7777 
      #  and at the end of the file:  
      # Include the admin virtual host (Proxy Virtual Host) related configuration 
      include "admin.conf"  
      IncludeOptional "moduleconf/*.conf"
    4. Save the httpd.conf file.

  4. Log in to WEBHOST2 and perform steps 2 and 3 for the httpd.conf file, replacing any occurrences of WEBHOST1 or ohs1 with WEBHOST2 or ohs2 in the instructions as necessary.

Modifying the httpd.conf File to Set Server Runtime Parameters

Out of the box, the Oracle HTTP Server comes configured with a number of values which effect how the server behaves when it is running. For most of the deployments, these values are sufficient. However, in an Oracle Identity and Access Management deployment, it is recommended that you update these values by doing the following:

  1. Log in to WEBHOST1.

  2. Locate the httpd.conf file for the first Oracle HTTP Server instance (ohs1) in the domain directory:

    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/
    
  3. Locate the section of the file with the following line:

    <IfModule mpm_worker_module>

  4. Update the entries in this section to reflect the following:

    <IfModule mpm_worker_module>
      ServerLimit       20
      StartServers      10
      MaxClients      1000
      MinSpareThreads  200
      MaxSpareThreads  800
      ThreadsPerChild   50
      ThreadLimit       50
      MaxRequestsPerChild  1000  
     </IfModule>
  5. Save the httpd.conf file.

  6. Log in to WEBHOST2 and perform steps 2 and 3 for the httpd.conf file, replacing any occurrences of WEBHOST1 or ohs1 with WEBHOST2 or ohs2 in the instructions as necessary.

Creating the Virtual Host Configuration Files

To create the virtual host configuration files:

Note:

Before you create the virtual host configuration files, be sure that you have configured the virtual servers on the load balancer, as described in Purpose of the Oracle HTTP Server Virtual Hosts.
  1. Log in to WEBHOST1 and change directory to the configuration directory for the first Oracle HTTP Server instance (ohs1):
    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/moduleconf
    
  2. If you are configuring  Oracle Access Management, create the iadadmin_vh.conf file and add the following directive: the file and add the following directive:
    <VirtualHost WEBHOST1.example.com:7777>
        ServerName iadadmin.example.com:80
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
        UseCanonicalName On
    </VirtualHost>
    
  3. If you are configuring Oracle Access Management, create the login_vh.conf file, and add the following directive:
    <VirtualHost WEBHOST1.example.com:7777>
        ServerName https://login.example.com:443
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
        UseCanonicalName On
    </VirtualHost>
  4. If you are configuring Oracle Identity Governance, create the igdadmin_vh.conf file, and add the following directive:
    <VirtualHost WEBHOST1.example.com:7777>
        ServerName igdadmin.example.com:80
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
        UseCanonicalName On
    </VirtualHost>
  5. If you are configuring Oracle Identity Governance, create the prov_vh.conf file, and add the following directive:
    <VirtualHost WEBHOST1.example.com:7777>
        ServerName https://prov.example.com:443
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
        UseCanonicalName On
    </VirtualHost>
  6. If you are configuring Oracle Identity Governance, create the igdinternal_vh.conf file, and add the following directive:
    <VirtualHost WEBHOST1.example.com:7777>
        ServerName igdinternal.example.com:80
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
    </VirtualHost>
    

Configuring Routing to the Administration Server and Oracle Web Services Manager

To enable Oracle HTTP Server to route to the Administration Server and the WSM-PM_Cluster, which contain the WLS_WSM managed servers, you must add a set of <Location> directives and add the WebLogicCluster parameter to the list of nodes in the cluster.

To set the WebLogicCluster parameter:

  1. Log in to WEBHOST1, and change directory to the following location:
    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/moduleconf/
    
  2. Add the following directives to the iadadmin_vh.conf file within the <VirtualHost> tags:
    # Admin Server and EM
    <Location /console>
        WLSRequest ON
        WebLogicHost IADADMINVHN.example.com
        WeblogicPort 7001
    </Location>
    
    <Location /consolehelp>
        WLSRequest ON
        WebLogicHost IADADMINVHN.example.com
        WeblogicPort 7001
    </Location>
    
    <Location /em>
        WLSRequest ON
        WebLogicHost IADADMINVHN.example.com
        WeblogicPort 7001
    </Location>
    
  3. Add the following directives to the igdadmin_vh.conf file within the <VirtualHost> tags:
    # Admin Server and EM
    <Location /console>
        WLSRequest ON
        WebLogicHost IGDADMINVHN.example.com
        WeblogicPort 7101
    </Location>
    
    <Location /consolehelp>
        WLSRequest ON
        WebLogicHost IGDADMINVHN.example.com
        WeblogicPort 7101
    </Location>
    
    <Location /em>
        WLSRequest ON
        WebLogicHost IGDADMINVHN.example.com
        WeblogicPort 7101
    </Location>
    
  4. Add the following directives to the igdinternal_vh.conf file within the <VirtualHost> tag:

    Note:

    Configure the port numbers appropriately, as assigned for your static or dynamic cluster. Dynamic clusters with the Calculate Listen Port option selected have incremental port numbers for each dynamic managed server that is created automatcially.

    The WebLogicCluster directive needs only a sufficient number of redundant server:port combinations to guarantee initial contact in case of a partial outage. The actual total list of cluster members is retrieve automatically upon first contact with any given node.

    # WSM-PM
    <Location /wsm-pm>
        WLSRequest ON
        WebLogicCluster OIMHOST1.example.com:7010,OIMHOST2.example.com:7010
        WLProxySSL OFF
        WLProxySSLPassThrough OFF
    </Location>
    

    For more information about the WebLogicCluster parameter in this example, see About the WebLogicCluster Parameter of the <VirtualHost> Directive.

  5. Copy the files iadadmin_vh.conf, igdadmin_vh.conf, and igdinternal_vh.conf edited in step 2, 3, and 4, respectively, to the configuration directory for the second Oracle HTTP Server instance (ohs2) on WEBHOST2:
    WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs2/moduleconf/
    
  6. Edit each of the files copied in the previous step on WEBHOST2 and change the <VirtualHost> directive references from WEBHOST1.example.com:7777 to WEBHOST2.example.com:7777.

Configuring Oracle HTTP Server for Oracle Access Manager Managed Servers

The instructions for configuring Oracle HTTP Server for the Oracle Access Manager Managed Servers are available in this section.

Configuring Oracle HTTP Server for the WLS_OAM Managed Servers

To configure the Oracle HTTP Server instances in the web tier so they route requests correctly to the Oracle Access Management cluster, use the following procedure to create an additional Oracle HTTP Server configuration file that creates and defines the parameters of the login.example.com virtual server. To configure Oracle HTTP Server for the WLS_OAM Managed Servers:
  1. Log in to WEBHOST1 and change directory to the configuration directory for the first Oracle HTTP Server instance (ohs1).
    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/moduleconf/
    

    Note:

    There are separate directories for configuration and runtime instance files. The runtime files under the .../OHS/instances/ohsn/* folder should not be edited directly. Edit only the .../OHS/ohsn/* configuration files.

  2. In the login_vh.conf file, add the following lines between the <VirtualHost> and </VirtualHost> tags:
    #OAM Entries
    <Location /oam>
      WLSRequest ON
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100 
    </Location>
    
    <Location /oamfed>
      WLSRequest ON
      WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100
      WLCookieName OAMJSESSIONID
      WLProxySSL ON
      WLProxySSLPassThrough ON
    </Location>
    
    # OAM Forgotten Password Page 
    <Location /otpfp/>   
      WLSRequest ON   
      WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100  
      WLCookieName OAMJSESSIONID   
      WLProxySSL ON   
      WLProxySSLPassThrough ON 
    </Location>
    
    <Location /ms_oauth>
      WLSRequest ON
      WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100
      WLCookieName OAMJSESSIONID
      WLProxySSL ON
      WLProxySSLPassThrough ON
    </Location>
    
  3. In the iadadmin_vh.conf file, add the following lines between the <VirtualHost> and </VirtualHost> tags:
    <Location /oamconsole>
      WLSRequest ON
      WebLogicHost IADADMINVHN.example.com
      WeblogicPort 7001
    </Location>
    
    <Location /access>
      WLSRequest ON
      WebLogicCluster OAMHOST1.example.com:14150,OAMHOST2.example.com:14150
      WLCookieName OAMJSESSIONID
    </Location>
    
    # Required for Multi-Datacenter 
    <Location /oam/services>
      WLSRequest ON
      WebLogicHost IADADMINVHN.example.com
      WeblogicPort 7001 
    </Location>

    Note:

    Location /oam/services is required only for mulit-datacenter deployments.

  4. Copy the iadadmin_vh.conf file and login_vh.conf to the configuration directory for the second Oracle HTTP Server instance (ohs2):
    WEB_DOMAIN_HOME/config/fmwconfig/components/ohs2/moduleconf/
    
  5. Edit the login_vh.conf and iadadmin_vh.conf change any references of WEBHOST1 to WEBHOST2 in the <VirtualHost> directives.
  6. Restart the Oracle HTTP server instances on WEBHOST1 and WEBHOST2.

Validating Access Through the Load Balancer

You should verify URLs to ensure that appropriate routing and failover is working from Oracle HTTP Server to OAM_Cluster.
Verifying the URLs
To verify the URLs:
  1. While WLS_OAM2 is running, stop WLS_OAM1 using the WebLogic Server Administration Console.
  2. Access https://login.example.com/oam/server/logout.
  3. Start WLS_OAM1 from the WebLogic Server Administration Console.
  4. Stop WLS_OAM2 from the WebLogic Server Administration Console.
  5. Access http://login.example.com/oam/server/logout.
You can verify the cluster node to which you were directed after the traffic balancing provided through your load balancer and then again through the web tier.

Configuring Oracle HTTP Server for Oracle Identity Governance Managed Servers

To configure the Oracle HTTP Server instances in the Web tier so they route requests correctly to the Oracle SOA Suite cluster, use the following procedure to create an additional Oracle HTTP Server configuration file that creates and defines the parameters of the https://igdinternal.example.com:7777 virtual server.

This procedure assumes you performed the Oracle HTTP Server configuration tasks described in Configuring Oracle HTTP Server to Route Requests to the Application Tier.

To create the virtual host configuration file so requests are routed properly to the Oracle Identity Governance clusters:

  1. Log in to WEBHOST1 and change directory to the configuration directory for the first Oracle HTTP Server instance (OHS_1):
    cd WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs1/moduleconf/
    
  2. Edit the file prov_vh.conf and add the following directives inside the <VirtualHost> tags:

    Note:

    • The URL entry for /workflow is optional. It is for workflow tasks associated with Oracle ADF task forms. The /workflow URL itself can be a different value, depending on the form.

    • Configure the port numbers appropriately, as assigned for your static or dynamic cluster. Dynamic clusters with the Calculate Listen Port option selected will have incremental port numbers for each dynamic managed server that you create.

      The WebLogicCluster directive needs only a sufficient number of redundant server:port combinations to guarantee an initial contact in case of a partial outage. The actual total list of cluster members is retrieved automatically on the first contact with any given node.

    <Location /identity>
        WLSRequest ON
        WLCookieName oimjsessionid 
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON
    </Location>
    
    # xlWebApp - Legacy 9.x webapp (struts based)
    <Location /xlWebApp>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON
    </Location>
    
    <Location /HTTPClnt>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON
    </Location>
    
    # Requests webservice URL
    <Location /reqsvc>
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLProxySSL ON
        WLProxySSLPassThrough ON
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /FacadeWebApp>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON 
    </Location>
    
    <Location /iam>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON 
    </Location>
    
    <Location /OIGUI>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
        WLProxySSL ON
        WLProxySSLPassThrough ON
    </Location>
    

    The prov_vh.conf file will appear as it does in Step 2.

  3. In the igdadmin_vh.conf file, add the following lines between <VirtualHost> and </VirtualHost> tags:
    ## Entries Required by Oracle Identity Governance
    <Location /oim>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /iam>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /sysadmin>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /admin>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster oimhost1.example.com:14000,oimhost2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # xlWebApp - Legacy 9.x webapp (struts based)
    <Location /xlWebApp>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # OIM self service console
    <Location /identity>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /OIGUI>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # Nexaweb WebApp - used for workflow designer and DM
    <Location /Nexaweb>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /FacadeWebApp>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster oimhost1.example.com:14000,oimhost2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # Scheduler webservice URL
    <Location /SchedulerService-web>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    
  4. In the igdinternal_vh.conf file, add the following lines between the <VirtualHost> and </VirtualHost> tags:
    ## Entries Required by Oracle Identity Governance
    #SOA Callback webservice for SOD - Provide the SOA Managed Server Ports
    
    <Location /sodcheck>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>
    
    # OIM, role-sod profile
    <Location /role-sod>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # Callback webservice for SOA. SOA calls this when a request is approved/rejected
    # Provide the SOA Managed Server Port
    <Location /workflowservice>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>
    
    # used for FA Callback service.
    <Location /callbackResponseService>
        WLSRequest ON
        WLCookieName    oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # spml xsd profile
    <Location /spml-xsd>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # OIM, spml dsml profile
    <Location /spmlws>
        WLSRequest ON
        PathTrim /weblogic
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /reqsvc>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>
    
    # SOA Infra
    <Location /soa-infra>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/OHS/component/oim_component.log"
    </Location>
    
    # UMS Email Support
    <Location /ucs>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/OHS/component/oim_component.log"
    </Location>
    
    <Location /provisioning-callback>
        WLSRequest ON
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    <Location /CertificationCallbackService>
       WLSRequest ON
       WLCookieName oimjsessionid
       WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
       WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    
    <Location /IdentityAuditCallbackService>
       WLSRequest ON
       WLCookieName oimjsessionid
       WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
       WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
    # SOA Callback webservice for SOD - Provide the SOA Managed Server Ports
      <Location /soa/composer>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
      </Location>
    
      <Location /integration>
        SetHandler weblogic-handler
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLCookieName oimjsessionid
      </Location>
    
      <Location /sdpmessaging/userprefs-ui>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
      </Location>
    
    <Location /iam>
        SetHandler weblogic-handler
        WLCookieName oimjsessionid
        WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
        WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
    
  5. Copy the igdadmin_vh.conf, igdinternal_vh.conf, and prov_vh.conf files to the configuration directory for the second Oracle HTTP Server instance (ohs2):
    WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/ohs2/moduleconf/
    
  6. Edit the igdadmin_vh.conf, prov_vh.conf, and igdinternal_vh.conf files and change any references to WEBHOST1 to WEBHOST2 in the <VirtualHost> directives.
  7. Restart the Oracle HTTP servers on WEBHOST1 and WEBHOST2.

Note:

If internal invocations are going to be used in the system, add the appropriate locations to the soainternal virtual host.

Validating the Virtual Server Configuration and Access to the Consoles

Validate the virtual server configuration on the load balancer, and the access to the management console and the Administration Server.

From the load balancer, access the following URLs to ensure that your load balancer and Oracle HTTP Server are configured properly. These URLs should show the initial Oracle HTTP Server 12c web page.

  • https://login.example.com/index.html

  • https://prov.example.com/index.html

  • http://iadadmin.example.com/index.html

  • http://igdadmin.example.com/index.html

Use the following URLs to the hardware load balancer to display the Oracle WebLogic Server Administration Console, and log in using the Oracle WebLogic Server iadadmin credentials:

  • http://iadadmin.example.com/console

  • http://iadadmin.example.com/em

This validates that the iadadmin.example.com virtual host on the load balancer is able to route requests to the Oracle HTTP Server instances on the web tier, which in turn can route requests for the Oracle WebLogic Server Administration Console to the Administration Server in the application tier.

Similarly, you should be able to access the WebLogic Administration console and Fusion Middleware Control for the igdadmin virtual host using the following URLs:

  • http://igdadmin.example.com/console

  • http://igdadmin.example.com/em

Restarting the OHS Instances on OHSHOST1 and OHSHOST2

Restart the Oracle HTTP Server (OHS) instances on both OHSHOST1 and OHSHOST2.

To do this:
  1. Restart the ohs1 instance by doing the following:
    1. Change directory to the following location:
      cd WEB_DOMAIN_HOME/bin
    2. Enter the following commands to stop and start the instance:
      ./stopComponent.sh ohs1
      ./startComponent.sh ohs1
  2. Restart the ohs2 instance by doing the following:
    1. Change directory to the following location:
      cd WEB_DOMAIN_HOME/bin
    2. Enter the following commands to stop and start the instance:
      ./stopComponent.sh ohs2
      ./startComponent.sh ohs2
(Optional) Enter the result of the procedure here.

Sample Virtual Host Files

This section lists the examples used in

Example 1   iadadmin_vh.conf file
<VirtualHost WEBHOST1.example.com:7777>
    ServerName iadadmin.example.com:80
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On

# Admin Server and EM
    <Location /console>
    WLSRequest ON
    WebLogicHost IADADMINVHN.example.com in example1
    WeblogicPort 7001
    </Location>

    <Location /consolehelp>
    WLSRequest ON
    WebLogicHost.example.com IADADMINVHN
    WeblogicPort 7001
    </Location>

    <Location /em>
    WLSRequest ON
    WebLogicHost.example.com IADADMINVHN
    WeblogicPort 7001
    </Location>

    <Location /oamconsole>
    WLSRequest ON
    WebLogicHost IADADMINVHN.example.com
    WeblogicPort 7001
    </Location>

    <Location /access>
    WLSRequest ON
    WebLogicCluster OAMHOST1.example.com:14150,OAMHOST2.example.com:14150
    WLCookieName OAMJSESSIONID
    </Location>

# Required for Multi-Datacenter 
    <Location /oam/services>
    WLSRequest ON
    WebLogicHost IADADMINVHN.example.com
    WeblogicPort 7001 
    </Location>
</VirtualHost>
Example 2   igdadmin_vh.conf file
VirtualHost WEBHOST1.example.com:7777>
    ServerName igdadmin.example.com:80
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit
    UseCanonicalName On

# Admin Server and EM
    <Location /console>
    WLSRequest ON
    WebLogicHost IGDADMINVHN.example.com
    WeblogicPort 7101
    </Location>

    <Location /consolehelp>
    WLSRequest ON
    WebLogicHost IGDADMINVHN.example.com
    WeblogicPort 7101
    </Location>

    <Location /em>
    WLSRequest ON
    WebLogicHost IGDADMINVHN.example.com
    WeblogicPort 7101
    </Location>

    <Location /oim>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /iam>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /sysadmin>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /admin>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster oimhost1.example.com:14000,oimhost2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# xlWebApp - Legacy 9.x webapp (struts based)
    <Location /xlWebApp>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# OIM self service console
    <Location /identity>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /OIGUI>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# Nexaweb WebApp - used for workflow designer and DM
    <Location /Nexaweb>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /FacadeWebApp>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster oimhost1.example.com:14000,oimhost2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# Scheduler webservice URL
    <Location /SchedulerService-web>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
</VirtualHost>
Example 3   iaminternal_vh.conf file

Contents of this file:

<VirtualHost WEBHOST1.example.com:7777>
    ServerName igdinternal.example.com:7777
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit

# WSM-PM
    <Location /wsm-pm>
    WLSRequest ON
    WebLogicCluster OIMHOST1.example.com:7010,OIMHOST2.example.com:7010
    WLProxySSL OFF   
    WLProxySSLPassThrough OFF
    </Location>

    <Location /sodcheck>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>

# OIM, role-sod profile
    <Location /role-sod>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# Callback webservice for SOA. SOA calls this when a request is approved/rejected
# Provide the SOA Managed Server Port
    <Location /workflowservice>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>

# used for FA Callback service.
    <Location /callbackResponseService>
    WLSRequest ON
    WLCookieName    oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# spml xsd profile
    <Location /spml-xsd>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

# OIM, spml dsml profile
    <Location /spmlws>
    WLSRequest ON
    PathTrim /weblogic
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /reqsvc>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>

# SOA Infra
    <Location /soa-infra>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/OHS/component/oim_component.log"
    </Location>

# UMS Email Support
    <Location /ucs>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/OHS/component/oim_component.log"
    </Location>

    <Location /provisioning-callback>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

   <Location /CertificationCallbackService>
   WLSRequest ON
   WLCookieName oimjsessionid
   WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
   WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
   </Location>

   <Location /IdentityAuditCallbackService>
   WLSRequest ON
   WLCookieName oimjsessionid
   WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
   WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
   </Location>

# SOA Callback webservice for SOD - Provide the SOA Managed Server Ports
    <Location /soa/composer>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>

    <Location /integration>
    SetHandler weblogic-handler
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLCookieName oimjsessionid
    </Location>

    <Location /sdpmessaging/userprefs-ui>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:8001,OIMHOST2.example.com:8001
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/soa_component.log"
    </Location>
		
    <Location /iam>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>
</VirtualHost>
Example 4   prov_vh.conf

Contents of this file:

<VirtualHost WEBHOST1.example.com:7777>
    ServerName https://prov.example.com:443
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit

    <Location /identity>
    WLSRequest ON
    WLCookieName oimjsessionid 
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON
    </Location>		

# xlWebApp - Legacy 9.x webapp (struts based)
    <Location /xlWebApp>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON
    </Location>

    <Location /HTTPClnt>
    WLSRequest ON
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON
    </Location>		

# Requests webservice URL
    <Location /reqsvc>
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLProxySSL ON
    WLProxySSLPassThrough ON
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    </Location>

    <Location /FacadeWebApp>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON 
    </Location>

    <Location /iam>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON 
    </Location>

    <Location /OIGUI>
    SetHandler weblogic-handler
    WLCookieName oimjsessionid
    WebLogicCluster OIMHOST1.example.com:14000,OIMHOST2.example.com:14000
    WLLogFile "${ORACLE_INSTANCE}/diagnostics/logs/mod_wl/oim_component.log"
    WLProxySSL ON
    WLProxySSLPassThrough ON
    </Location>
</VirtualHost>
Example 5   login_vh.conf

Contents of this file:

<VirtualHost WEBHOST1.example.com:7777>
    ServerName https://login.example.com:443
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit

#OAM Entries
  <Location /oam>
  WLSRequest ON
  WLProxySSL ON
  WLProxySSLPassThrough ON
  WLCookieName OAMJSESSIONID
  WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100 
  </Location>

  <Location /oamfed>
  WLSRequest ON
  WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100
  WLCookieName OAMJSESSIONID
  WLProxySSL ON
  WLProxySSLPassThrough ON
  </Location>

# OAM Forgotten Password Page 
  <Location /otpfp/>   
  WLSRequest ON   
  WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100  
  WLCookieName OAMJSESSIONID   
  WLProxySSL ON   
  WLProxySSLPassThrough ON 
  </Location>

  <Location /ms_oauth>
  WLSRequest ON
  WebLogicCluster OAMHOST1.example.com:14100,OAMHOST2.example.com:14100
  WLCookieName OAMJSESSIONID
  WLProxySSL ON
  WLProxySSLPassThrough ON
  </Location>
</VirtualHost>