11 Configuring Oracle HTTP Server for an Enterprise Deployment

For an enterprise deployment, Oracle HTTP Server must be installed on each of the web tier hosts and configured as 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:

As of Fusion Middleware 12.2.1.4.0, Oracle Traffic Director has been deprecated. For an enterprise deployment, use Oracle HTTP Server. Oracle Traffic Director should be used only in very specific use cases that require TCP routing such as FTP and SFTP services in Oracle Managed File Transfer. See Configuring Oracle Managed File Transfer in an Enterprise Deployment.

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.

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

Installing Oracle HTTP Server on WEBHOST1

It is important to understand the procedure for installing the Oracle HTTP Server software on 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 HTTP Server requires that you install a certified Java Development Kit (JDK) on your system.

You must install the JDK in 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.

For more information about the recommended location for the JDK software, see the Understanding the Recommended Directory Structure for an Enterprise Deployment.

The following example describes how to install a recent version of JDK 1.8.0_241.

  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-8u241-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_241 /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 -version
    The Java version in the output should be displayed as 1.8.0_241.
  6. Repeat steps 1 through 5 for each web tier host. For example, WEBHOST1 and WEBHOST2.

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.4_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 11-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 7-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.

Do not use this attribute value:

Task 2   Selecting the Configuration Templates

On the Templates screen, select Oracle HTTP Server (Standalone) - [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.

  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.

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.

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. Create the admin_vh.conf file and add the following directive:
    <VirtualHost WEBHOST1:7777>
        ServerName admin.example.com:80
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
    </VirtualHost>
    
  3. Create the soainternal_vh.conf file and add the following directive:
    <VirtualHost WEBHOST1:7777>
        ServerName soainternal.example.com:80
        ServerAdmin you@your.address
        RewriteEngine On
        RewriteOptions inherit
    </VirtualHost>
    
  4. Restart the ohs1 instance:
    1. Change directory to the following location:
      cd WEB_DOMAIN_HOME/bin
    2. Enter the following commands to stop and start the instance; provide the node manager password when prompted:
      ./stopComponent.sh ohs1
      ./startComponent.sh ohs1
  5. Copy the admin_vh.conf file and the soainternal_vh.conf file 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 the admin_vh.conf and soainternal_vh.conf files and change any references from WEBHOST1 to WEBHOST2 in the <VirtualHost> directives.
  7. Restart the ohs2 instance:
    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

Validating the Virtual Server Configuration on the Load Balancer

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.

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

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

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 admin_vh.conf file within the <VirtualHost> tags:
    # Admin Server and EM
    <Location /console>
        WLSRequest ON
        WebLogicHost ADMINVHN
        WeblogicPort 7001
    </Location>
    
    <Location /consolehelp>
        WLSRequest ON
        WebLogicHost ADMINVHN
        WeblogicPort 7001
    </Location>
    
    <Location /em>
        WLSRequest ON
        WebLogicHost ADMINVHN
        WeblogicPort 7001
    </Location>
    

    The admin_vh.conf file should appear as it does in Example 1, "admin_vh.conf file".

  3. Add the following directives to the soainternal_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 SOAHOST1:7010,SOAHOST2:7010
        WLProxySSL OFF
        WLProxySSLPassThrough OFF
    </Location>
    

    The soainternal_vh.conf file should appear as it does in Example 2, "soainternal_vh.conf file".

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

  4. Restart the ohs1 instance:
    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
  5. Copy the admin_vh.conf file and the soainternal_vh.conf file 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 the admin_vh.conf file on WEBHOST2 and change the <VirtualHost> directive references from WEBHOST1:7777 to WEBHOST2:7777.
  7. Edit the soainternal_vh.conf file on WEBHOST2 and change the <VirtualHost> directive references from WEBHOST1:7777 to WEBHOST2:7777.
  8. Restart the ohs2 instance:
    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
Example 1   admin_vh.conf file
<VirtualHost WEBHOST1:7777>
    ServerName admin.example.com:80
    ServerAdmin you@your.address
    RewriteEngine On
    RewriteOptions inherit

# Admin Server and EM
<Location /console>
    WLSRequest ON
    WebLogicHost ADMINVHN
    WeblogicPort 7001
</Location>

<Location /consolehelp>
    WLSRequest ON
    WebLogicHost ADMINVHN
    WeblogicPort 7001
</Location>

<Location /em>
    WLSRequest ON
    WebLogicHost ADMINVHN
    WeblogicPort 7001
</Location>
</VirtualHost>
Example 2   soainternal_vh.conf file

Contents of this file:

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

# WSM-PM
<Location /wsm-pm>
    WLSRequest ON
    WebLogicCluster SOAHOST1:7010,SOAHOST2:7010
    WLProxySSL OFF     
    WLProxySSLPassThrough OFF
</Location>
</VirtualHost>

Validating Access to the Management Consoles and Administration Server

To verify the changes that you have made in this chapter:

  1. Use the following URL to the hardware load balancer to display the Oracle WebLogic Server Administration Console, and log in by using the Oracle WebLogic Server administrator credentials:

    http://admin.example.com/console
    

    This validates that the admin.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.

  2. Similarly, you should be able to access the Fusion Middleware Control by using a similar URL:

    http://admin.example.com/em