Chapter 1. Introduction to JBCS Apache HTTP Server installation

Red Hat JBoss Core Services (JBCS) provides a collection of supplementary software, including the Apache HTTP Server, that you can use with various Red Hat JBoss middleware products. Red Hat packages this supplementary software under JBCS to allow for faster distribution of updates and for a more consistent update experience.

For a full list of components that JBCS supports, see the Core Services Apache HTTP Server Component Details web page.

Note

Before you attempt to access the Core Services Apache HTTP Server Component Details web page, ensure that you have an active Red Hat subscription and you are logged in to the Red Hat Customer Portal.

1.1. JBCS Apache HTTP Server

Red Hat JBoss Core Services (JBCS) provides a distribution of the Apache HTTP Server that multiple Red Hat JBoss middleware products use. The Apache HTTP Server processes requests that web clients send over the Hypertext Transfer Protocol (HTTP).

Apache HTTP Server distributions for JBoss middleware products

In older JBoss product releases, each JBoss middleware product provided a separate distribution of the Apache HTTP Server. Starting from the following product versions, each JBoss middleware product uses the JBCS distribution of the Apache HTTP Server:

  • Red Hat JBoss Enterprise Application Platform (JBoss EAP) 7.0 or later
  • Red Hat JBoss Web Server 3.1 or later

Differences between JBCS and RHEL distributions of the Apache HTTP Server

Both JBCS and Red Hat Enterprise Linux (RHEL) provide separate distributions of the Apache HTTP Server.

Important

On RHEL 9, JBCS does not provide an RPM distribution of the Apache HTTP Server. JBCS provides only an archive file distribution of the Apache HTTP Server for RHEL 9 systems.

Unlike JBCS releases on earlier RHEL versions, the JBCS distribution of the Apache HTTP Server for RHEL 9 systems is based on the RHEL distribution of the Apache HTTP Server httpd package. JBCS provides an archive file distribution on RHEL 9 to support the ability to run multiple instances of the Apache HTTP Server simultaneously.

Consider the following differences between the Apache HTTP Server distributions that JBCS and RHEL provide:

On RHEL versions 7 and 8
  • You can install the JBCS Apache HTTP Server from an archive file or RPM package. You can install the RHEL Apache HTTP Server from an RPM package only.
  • Only the JBCS Apache HTTP Server provides the load-balancing HTTP connectors mod_jk and mod_proxy_cluster. The RHEL Apache HTTP Server does not provide these modules.

    Note

    In JBCS 2.4.37 and earlier releases, the mod_proxy_cluster connector was named mod_cluster.

  • On RHEL 7, only the JBCS Apache HTTP Server provides the mod_proxy_uwsgi module. From RHEL 8 onward, the JBCS and RHEL distributions of the Apache HTTP Server both provide the mod_proxy_uwsgi module.
On RHEL 9
  • Unlike JBCS releases on RHEL 7 and RHEL 8, the JBCS release on RHEL 9 is based on the RHEL distribution of the Apache HTTP Server httpd package. JBCS on RHEL 9 therefore has certain behavioral differences compared to the JBCS distributions of the Apache HTTP Server on earlier RHEL versions. For more information, see Behavioral differences between JBCS distributions on different RHEL versions.
  • JBCS provides only an archive file distribution of the Apache HTTP Server. If you want to install the Apache HTTP Server from an RPM package, your only option is to install the RHEL distribution of the httpd package by using Application Streams.
  • The version of the Apache HTTP Server that JBCS provides is different from the version of the Apache HTTP Server that RHEL provides through the Application Streams feature.
  • The JBCS and RHEL distributions of the Apache HTTP Server provide identical copies of the mod_jk connector and the mod_proxy_cluster connector.
On all RHEL versions
  • The JBCS Apache HTTP Server uses a top-level jbcs-httpd24-2.4/httpd installation directory. The RHEL Apache HTTP Server uses standard RHEL directories for an installation of the httpd package such as /etc/httpd, usr/share/httpd, var/log/httpd, and so on.
  • When you install a JBCS distribution of the Apache HTTP Server from an archive file or from RPM packages by using the groupinstall option, you also automatically install the mod_jk and mod_proxy_cluster connectors.
  • The JBCS Apache HTTP Server does not provide or support the mod_php module. Only the RHEL Apache HTTP Server supports the mod_php module.

Behavioral differences between JBCS distributions on different RHEL versions

Unlike JBCS 2.4.57 on RHEL 7 or RHEL 8, the JBCS 2.4.57 distribution for RHEL 9 systems is based on the RHEL distribution of the Apache HTTP Server httpd package. This change to the way Red Hat distributes the httpd package from RHEL 9 onward helps to provide Apache HTTP Server users with a more consistent and streamlined user experience.

Because of this difference, JBCS 2.4.57 on RHEL 9 has certain behavioral differences compared to JBCS 2.4.57 on earlier RHEL versions.

Consider the following guidelines:

  • On RHEL 9, the mod_security module does not support the SecCollectionGCFrequency directive for specifying garbage collection frequency. The mod_security module that JBCS provides on RHEL 7 and RHEL 8 supports the SecCollectionGCFrequency directive.
  • On RHEL 9, the mod_deflate module does not support the DeflateAlterEtag directive for specifying how to alter the ETag header when a response is compressed. The mod_deflate module that JBCS provides on RHEL 7 and RHEL 8 supports the DeflateAlterEtag directive.
  • On RHEL 9, the httpd.conf.sample file does not include the following content:

    • A default PidFile directive for specifying the file in which the server records the process ID of the daemon
    • A list of AddLanguage directives in the mod_mime section for mapping specific filename extensions to specific content languages
    • A configuration section for the web_dav module for web-based distributed authoring and versioning (WebDav)

    The httpd.conf.sample file that JBCS provides on RHEL 7 and RHEL 8 includes all of the preceding content.

1.2. Supported operating systems and installation methods for the JBCS Apache HTTP Server

Red Hat JBoss Core Services (JBCS) provides a distribution of the Apache HTTP Server for different versions of the Red Hat Enterprise Linux (RHEL) and Windows Server operating systems.

Consider the following guidelines for installing the JBCS Apache HTTP Server on supported operating systems:

  • On all supported RHEL and Windows Server versions, you can install the JBCS Apache HTTP Server by using archive installation files that are available for each platform.
  • On RHEL versions 7 and 8, you can install the JBCS Apache HTTP Server by using Red Hat Package Manager (RPM) packages.
  • On RHEL 9, if you want to install the Apache HTTP Server from an RPM package, you must install the RHEL distribution of the Apache HTTP Server by using Application Streams. You cannot install the JBCS Apache HTTP Server on RHEL 9 by using RPM packages.

1.3. Upgrade of an existing JBCS installation to the 2.4.57 release

If you previously installed Red Hat JBoss Core Services (JBCS) 2.4.51 or earlier, you can upgrade your existing JBCS installation to the latest 2.4.57 release. The steps to upgrade JBCS differ depending on whether you installed the product from archive files or RPM packages.

1.3.1. Upgrading an existing JBCS installation when installed from archive files

If you previously installed the JBCS Apache HTTP Server 2.4.51 or earlier from an archive file, you can upgrade to the latest 2.4.57 release.

The upgrade process includes the following steps:

  1. Installing the Apache HTTP Server 2.4.57
  2. Setting up the Apache HTTP Server 2.4.57
  3. Removing an earlier version of Apache HTTP Server

Prerequisites

  • If you are using Red Hat Enterprise Linux (RHEL), you have root user access.
  • If you are using Windows Server, you have administrative access.
  • You have an existing installation of the JBCS Apache HTTP Server 2.4.51 or earlier that you installed from an archive file.

Procedure

  1. Shut down any running instances of the Apache HTTP Server 2.4.51.
  2. Back up the Apache HTTP Server 2.4.51 installation and configuration files.
  3. Install the Apache HTTP Server 2.4.57 by using the archive file installation method for the current system. For more information, see Additional Resources at the end of this section.
  4. Migrate your configuration from the Apache HTTP Server version 2.4.51 to version 2.4.57.

    Note

    The JBCS configuration files might have changed since the Apache HTTP Server 2.4.51 release. Update the 2.4.57 version configuration files rather than overwrite them with the configuration files from a different version, such as the Apache HTTP Server 2.4.51.

  5. Remove the Apache HTTP Server 2.4.51 root directory.

1.3.2. Upgrading an existing JBCS installation when installed from RPM packages

If you previously installed the JBCS Apache HTTP Server 2.4.51 or earlier from RPM packages, you can upgrade to the latest 2.4.57 release by using the yum groupupdate command.

Prerequisites

  • You have an existing installation of the JBCS Apache HTTP Server 2.4.51 or earlier that you installed from RPM packages on RHEL 7 or RHEL 8.

Procedure

  • Enter the following command as the root user:

    # yum groupupdate jbcs-httpd24

1.4. Key differences between RHEL 7 and RHEL 8

This section provides an overview of some of the key changes introduced in Red Hat Enterprise Linux (RHEL) 8.

Removed security functionality
All-numeric user and group names are deprecated in RHEL 7 and their support is completely removed in RHEL 8.
Memory management
In RHEL 7, the existing memory bus has capacity for 48/46 bit of virtual/physical memory addressing, and the Linux kernel implements 4 levels of page tables to manage these virtual addresses to physical addresses. With the extended address range, the memory management in RHEL 8 supports the implementation of 5-level page tables, to allow handling of the expanded address range. In RHEL 8, support for 5-level page tables is disabled by default, even if the system supports this feature.
XFS supports
RHEL 7 can mount XFS file systems with shared copy-on-write data extents only in the read-only mode. In RHEL 8, the XFS file system supports shared copy-on-write data extent functionality. This feature enables two or more files to share a common set of data blocks.
NFS configuration
In RHEL 7, the NFS configuration is located in the /etc/sysconfig/nfs file. In RHEL 8, the NFS configuration is located in the /etc/nfs.conf file.

Additional resources

1.5. Key differences between RHEL 8 and RHEL 9

This section provides an overview of some of the key changes introduced in Red Hat Enterprise Linux (RHEL) 9.

Application Streams enhancement

RHEL 8 introduced a feature called Application Streams. RHEL uses Application Streams to deliver and update multiple versions of user-space components such as applications, runtime languages, and databases more frequently than the core operating system packages. Each Application Stream represents a specific version of a component, and each component in an Application Stream has a defined life cycle. Application Streams provide users greater flexibility to use the component versions that suit their requirements for specific use cases and workloads without impacting the underlying stability of the platform or deployments.

On RHEL 8, Red Hat packaged the content in Application Streams as a combination of RPM packages, modules (package groups), and Software Collections. RHEL 9 further enhances the Application Streams feature by providing initial Application Stream versions that you can install as RPM packages by using the standard dnf install command

Availability of Apache connectors and load balancers

RHEL 9 provides a distribution of the Apache Tomcat Connector (mod_jk) and the JBoss HTTP Connector (mod_proxy_cluster) for load-balancing web client requests to back-end application servers. The RHEL distribution of mod_jk and mod_proxy_cluster is identical to the JBCS distribution of these modules.

Installing the RHEL distribution of the Apache HTTP Server does not automatically install the mod_jk and mod_proxy_cluster modules. For more information about installing mod_jk and mod_proxy_cluster from RPM packages on RHEL 9, see the Apache HTTP Server Connectors and Load Balancing Guide.

Additional resources

1.6. Additional resources (or Next steps)