Migrating Enterprise Ready Server to vFabric Web Server

This section has information about migrating Enterprise Ready Server (ERS) to to vFabric Web Server. For information about migrating ERS to vFabric tc Server, see Migrate an ERS Tomcat Instance to tc Server.

VMware currently provides two supported distributions of the open-source Apache HTTPD Server: vFabric Enterprise Ready Server (ERS) and vFabric Web Server, which is part of vFabric Suite. vFabric Web Server is fully supported by VMware on common platforms such as Red Hat Enterprise Linux and Microsoft Windows, and support is available for additional, less-common platforms. See Supported Configurations and System Requirements. Please contact VMware support if your platform is not listed on the vFabric Web Server product download page.

vFabric Enterprise Ready Server is deprecated. VMware will no longer provide support for HTTPD version 2.0 as of November 30, 2013 and HTTPD version 2.2 as of November 30, 2014. For more information, see VMware Support Policies. Please contact your account manager to learn about converting your existing active ERS licenses to vFabric Web Server licenses.

This document describes how to migrate Enterprise Ready Server instances to use vFabric Web Server. Although each product is based on the standard, open-source Apache HTTP Server, there are differences in VMware's implementations. See Differences Between vFabric Web Server and vFabric ERS.

Note

This document describes the migration procedure for Enterprise Ready Server based on Apache version 2.2. You can use the same procedures to migrate from Apache version 2.0, but be aware of additional changes. See Upgrading to 2.2 from 2.0.

Subtopics

Preparing to Migrate

Migration Procedure

Preparing to Migrate

Before you migrate, read the information in this section. You may also want to review Differences Between vFabric Web Server and vFabric ERS.

Audit your Configurations

Migration from ERS to vFabric Web Server is an opportune time for you to examine your vFabric Web Server configurations for best practices and to update them where necessary. Note the following recommendations:

  • VMware recommends that your deployment use the latest security modules and procedures.

  • VMware recommends that you use the latest version of plug-in modules.

    VMware does not guarantee compatibility of third-party plug-in modules between ERS and vFabric Web Server. VMware recommends that you recompile third-party modules using the Developer build of vFabric Web Server. You may need to contact your vendor to obtain the latest versions of the modules.

  • VMware recommends that you use up-to-date SSL libraries and that you review your SSL cipher configurations and protocol directives. .

  • VMware recommends that you use modular configuration files.

    VMware recommends that you use the Include directive to add external configurations to your httpd.conf file. When you use the Include directive to reference external configuration files, the httpd.conf file is more readable and your configurations are easier to manage. For example, the following directive references an external configuration file:

    Include conf/extra/httpd-languages.conf

    The default httpd.conf file that is created when you create a new vFabric Web Server instance contains examples of including external configuration files. The external files are located in the <instance>/conf/extra directory) and are referenced with Include directives in the main httpd.conf file.

For more information, see the Apache HTTPD documentation.

Note

To view a summary of Web server instance configurations, sorted by module, use the following procedure to enable the mod_info module to display configuration information for your Enterprise Ready Server or vFabric Web Server instances:

  1. Make sure the mod_info module is enabled in your configuration file (httpsd.conf for ERS and httpd.conf for vFabric Web Server) with a configuration similar to the following. (You may need to change the path to include the correct path for 32-bit or 64-bit installations.)

    LoadModule info_module "<installation_directory>/apache2.2-64/modules/standard/mod_info.so"

  2. Add the following code block to the configuration file:

    <Location /hidden-info>
        SetHandler server-info
    </Location>

  3. Restart the server instance.

  4. Use a Web browser to open the following URL:

    http://<server_hostname:port>/hidden-info

Directory Structure Changes

The directory structure of a vFabric Web Server installation closely matches a standard Apache 2.2 installation, whereas vFabric ERS uses a more proprietary file-naming and directory convention.  Migrating to vFabric Web Server requires that you change configuration files and other scripts in your environment to reflect the new naming conventions. These changes make it easier to integrate third-party extensions with vFabric Web Server.

Table 2, “Directory Structure and File Name Changes” describes the changes in directory structure, configuration file names, and script file names.

Table 2. Directory Structure and File Name Changes

Purpose

Enterprise Ready Server

vFabric Web Server 5.3

Apache modules

<install_dir>/httpd-2.2.<version>/modules/standard

<install_dir>/httpd-2.2.<version>/modules/covalent

<install_dir>/httpd-2.2.<version>/modules/jakarta

<install_dir>/httpd-2.2.<version>/modules/perl

<install_dir>/httpd-2.2.<version>/modules/php

<install_dir>/httpd-2.2<version>/modules

All modules reside in this single directory. Note that the mod_perl and mod_php modules are not included with vFabric Web Server.

See Apache Module Changes.

Configuration file

<web_server_instance>/conf/httpsd.conf

<web_server_instance>/conf/httpd.conf

Additional configuration files for various Apache modules are located in the <web_server_instance>/conf/extras subdirectory.

Script for creating new Apache HTTPD server instances

Linux Perl script: <install_directory>/ers-server.pl

Linux symlink to Perl script:<install_directory>/newserver

Windows Perl script: <install_directory>\ers-server.pl

Windows PowerShell script:<install_directory>\newserver.ps1

Start-up script

Linux: <web_server_instance>/bin/apache-startup.sh

Linux: <web_server_instance>/bin/httpdctl

Windows: <web_server_instance>\bin\apache-startup.bat

Windows PowerShell script: <web_server_instance>\bin\httpdctl.ps1

Tools

<install_directory>/tools/*

<install_directory>/httpd-<version>/bin/*

Apache HTTPD binaries

HTTPD binaries are written to the installation directory. When the server is upgraded, the binaries are overwritten.

HTTPD binaries are written to a directory in the following format:

vfabric-web-server/httpd.-2.2.xx.x-bb.(Where xx.x is the minor version number and bb is either 32 or 64 (for 32-bit or 64-bit versions). When the server is upgraded, the binaries are not overwritten.

Windows service names

ERS <instance name> httpsd

vFabric httpd <instance name>


Apache Module Changes

The compiled Apache modules for vFabric Web Server differ from those that are compiled and provided with Enterprise Ready Server. VMware recommends you substitute the modules described in Table 3, “Apache Modules”. If necessary, you can compile and implement the modules yourself using the Developer build of vFabric Web Server. To ensure compatibility, VMware recommends that you recompile all third-party modules. See Complete Packages and Modules in vFabric Web Server 5.3.

Table 3. Apache Modules

Module

Changes in vFabric Web Server

mod_perl

VMware recommends that you use the mod_fcgid module to serve Perl-based applications.

For more information, see the following article: FastCGI rocks mod_perl and FCGID.

mod_php (ERS)

The mod_php module is not included with vFabric Web Server. VMware recommends that you use the mod_fcgid module to serve PHP-based applications.

For more information on the benefits of using mod_fcgid, see Apache with fcgid: acceptable performance and better resource utilization.

mod_snmp (ERS)

VMware recommends that you use the Apache BMX framework to provide internal runtime information about your vFabric Web Server instances to monitoring systems such as vFabric Hyperic. The following modules are included and are enabled by default:

  • mod_bmx

  • mod_bmx_status

  • mod_bmx_vhost

You can disable this functionality by commenting out the LoadModule directives for the BMX modules in the httpd.conf file.

For more information, see Configure BMX for Monitoring vFabric Web Server Instances.

mod_bmx (vFabric Web Server)

mod_bmx is a module in vFabric Web Server. For a sample configuration, see the following directory in a newly created vFabric Web Server instance:

<instance>/conf/extras/conf/extra/httpd-info.conf

mod_jk

Although mod_jk is still included with Apache version 2.2, it has limitations on header fields sizes, cannot be secured with SSL cryptography, and requires separate configuration of proxy worker pools.

VMware recommends that you use mod_proxy_balancer, which supports both the ajp protocol used by mod_jk, and also the http and https protocol to legibly decipher the back-end connection stream and secure the back-end connections to Tomcat and tc Server. mod_proxy_balancer is configured using the httpd.conf file syntax.

For mod_proxy configuration options, seehttp://httpd.apache.org/docs/2.2/mod/mod_proxy.html.

For configuration instructions, see Configure Load Balancing Between Two or More tc Runtime Instances.

mod_version

The mod_version module is compiled into vFabric Web Server. If your ERS httpdsd.conf file contains a LoadModule line, delete the line. The functionality of mod_version is still available in your migrated vFabric Web Server instances.

For example, delete the following line:

LoadModule version_module <path>

mod_ssl

In ERS instances, you conditionally configure SSL in the httpdsd.conf file by wrapping the LoadModule mod_ssl directive within an <IfDefine SSL> directive. When you start the server with the startssl command, SSL is enabled.

In vFabric Web Server, you configure SSL in the httpd.conf file by adding the LoadModule ssl_module <path> line without a conditional <IfDefine SSL> directive. When you start the server instance using the start command, the server starts using SSL.

See Startup Script Changes.

vFabric Web Server now uses Open SSL 1.01 and supports Transport Layer Security (TLS) 1.1 and 1.2.


Startup Script Changes

The name of the script that you use to start vFabric Web Server instances has changed, and has some new options. In addition, configuration of the multi-process module (MPM) has changed. The startup scripts are located in the bin subdirectory of a server instance.

Table 4. Startup Script Changes

Item

Enterprise Ready Server

vFabric Web Server 5.3

Startup (control) script name

Linux: <web_server_instance>/bin/apache_startup.sh

Linux: <web_server_instance>/bin/httpdctl

Windows: <web_server_instance>\bin\apache_startup.bat

Windows: <web_server_instance>\bin\httpdctl.ps1

Startup (control) script parameters

The following commands are available with the apache_startup script:

  • start

  • startssl

  • stop

  • restart

  • graceful

  • configtest

  • configtestssl

The following commands are available with the httpdctl script:

  • start

  • stop

  • restart

  • gracefulstop

  • graceful

  • status

  • install

  • uninstall

  • configtest

See httpdctl Reference.

Startup script command with SSL enabled

To use SSL in an ERS instance you configure and load an SSL module in the httpsd.conf file, and you use the startssl option when you run the apache_startup script.

To use SSL in a vFabric Web Server instance, you configure a SSL module in the httpd.conf file and use the regular start option when you run the httpdctl script.

Multi-process module (MPM) configuration

You configure MPM in the startup.properties file.

You configure MPM when you create a vFabric Web Server instance. Use the following option of the newserver command:

--mpm=worker|prefork|event (The default value is worker.)

See newserver Prompts and Command Reference.

If you need to modify MPM after creating a server, change the value of the default_mpm variable to worker, prefork, or event by changing the following line in the httpdctl script:

default_mpm="worker"