Oracle® HTTP Server Administrator's Guide
10g Release 2 (10.1.2) B14007-03 |
|
Previous |
Next |
This chapter describes the Oracle HTTP Server, highlighting the differences between the Oracle distribution and the open source Apache product on which it is based. It also explains how to start, stop, and restart the server.
Topics discussed are:
Documentation from the Apache Software Foundation is referenced when applicable.
Note: Readers using this guide in PDF or hard copy formats will be unable to access third-party documentation, which Oracle provides in HTML format only. To access the third-party documentation referenced in this guide, use the HTML version of this guide and click the hyperlinks. |
Oracle HTTP Server is the Web server component of Oracle Application Server. Based on the Apache infrastructure, Oracle HTTP Server allows developers to program their site in a variety of languages and technologies - Perl (through mod_perl
and CGI), C (through CGI, and FastCGI), C++ (through FastCGI), PHP, and Oracle's PL/SQL. It can also be a proxy server, both forward and reverse. In addition, the features of single sign-on, clustered deployment, and high availability, enhance the operations of the Oracle HTTP Server.
Based on Apache - HTTP v1.1 Support
Oracle HTTP Server code is based on Apache 1.3 Web Server (http://www.apache.org
). With such a proven code base, Oracle HTTP Server provides Oracle Application Server customers with the stability, flexibility, and scalability required of a Web server.
Security - Encryption with SSL
Secure Sockets Layer is required to run any Web site securely. Oracle HTTP Server supports SSL encryption based on industry standard, patented, algorithms. The SSL works seamlessly with both Internet Explorer and Netscape browsers. In addition, the infrastructure has been upgraded to share the same wallet information as the database users. Features include:
SSL HW Acceleration Support: SSL encryption is slower when done in software. Dedicated hardware support for this purpose is now supported, specifically with nCipher.
Variable Security per Directory: This feature allows individual directories to be protected by different strength encryption.
Oracle HTTP Server to OC4J SSL Support: Oracle HTTP Server and OC4J can communicate using AJP protocol over SSL. Previously, Oracle HTTP Server and OC4J used the AJP 1.3 protocol unencrypted, without support for authentication. Now, Oracle HTTP Server has been modified to extend support to the AJP 1.3 protocol over SSL providing both encryption and authentication.
Oracle HTTP Server supports the standard basic authentication features of HTTP servers. The source for the username and password used here is a flat file (with encrypted passwords). In addition, a module, mod_osso
, is included to support single sign on across sites and across applications. This provides for a much better end user experience (they have to login only once), and a much easier development cycle (most of the security is declarative).
The virtual host facility allows an HTTP server to service multiple domain names over one IP address. Thus, virtual hosts www.north.com
might have the same IP address as www.south.com
. Oracle HTTP Server provides a "container" environment for a virtual host, thus providing a virtual host with its own set of security and other configuration directives, in addition to locations from which the files are served. This allows an ISP to save on hardware and administrative costs by enabling hundreds to thousands of sites to be served from a single runtime instance of Oracle HTTP Server. Only one virtual host on a single IP address can accommodate SSL. Oracle HTTP Server can support multiple IP addresses and each one of them can have one, but only one virtual host.
Distributed Authoring and Versioning Support
WebDAV, an IETF standard, is an HTTP based protocol that allows DAV enabled clients, such as MS Office, Windows Explorer, to edit files on a server. The Apache Software Foundation provides a module, mod_oradav
, that provides support for file based storage on the server. In addition to providing this functionality, Oracle HTTP Server enables the server side store to be a database or other repository.
Proxy Server and URL Rewriting
Any Web site that is "alive" changes often. Along with that, the directory structure and the URLs change. Oracle HTTP Server makes it easy to accommodate these changes by including an engine that support URL rewriting so that the end users do not have to change their bookmarks. It also supports reverse proxy capabilities, thus making it easier to make content served by different servers to appear from one single server.
Oracle Application Server Proxy Plug-in
A separately available component which enables IIS and Sun ONE Web servers to route requests to Oracle Application Server. Users can benefit from all of the Oracle Application Server features even if their corporate standard requires them to use IIS or Sun ONE Web servers. The proxy plug-in provides Oracle Application Server features, such as single sign-on, load balancing, and AJP port tunneling, to be accessed when using IIS or Sun ONE Web servers.
Oracle Application Server SSO Plug-in
A separately available component which enables IIS and Sun ONE Web servers to be integrated with Oracle Application Server Single Sign-on. IIS and Sun ONE listener applications can now be protected by using the single sign-on infrastructure. You can now be authenticated to these listeners using only one single sign-on password. This functionality is similar to what mod_osso
provides to Oracle HTTP Server.
Oracle Application Server Containers for J2EE Plug-in
A separately available component which enables IIS, Sun ONE and Apache 1.3.x Web servers to route requests directly to OC4J. This functionality is similar to what mod_oc4j
provides for Oracle HTTP Server.
This feature allows access to PL/SQL code stored in the Oracle database.
Similar in concept to the Java Server Pages, this module allows PL/SQL to be used as the scripting language within an HTML page. It gets translated into a stored procedure, which then uses the module described earlier (for PL/SQL stored procedure) to send the output to the browser.
Server Side Includes provide an easy way of adding some dynamic, or uniform static content, across all the site's pages. It is typically used for header/footer information. Oracle HTTP Server supports special directives to enable these only for certain types of files, or for given virtual hosts.
Perl is a scripting language often used to provide dynamic content. Perl can either be called as a CGI program, or directly through mod_perl
. Oracle Application Server uses Perl version 5.6.1.
PHP is an open source, widely-used, general-purpose, client-side scripting language, that is embedded in standard HTML. It is used to generate dynamic HTML pages.
CGI programs have been commonly used to program Web applications. Oracle HTTP Server enhances them by providing a mechanism to keep them alive beyond the request lifecycle, thus improving the performance tremendously.
Dynamic Monitoring Services (DMS) metrics give runtime performance statistics for both Oracle HTTP Server and OC4J processes. As applications run, DMS collects detailed performance statistics. This data enables you to monitor the duration of important request processing phases and status information. With this information, you can locate performance bottlenecks and tune the application server to maximize throughput and minimize response time. Process metrics as well as event information is available and can be viewed through Oracle Enterprise Manager.
Oracle Process Manager and Notification Server
Oracle Application Server provides a high availability infrastructure integration with Oracle Process Manager and Notification Server (OPMN), for process management, death detection, and failover for OC4J and Oracle HTTP Server processes.
Distributed Configuration Management
Distributed Configuration Manager (DCM) enables cluster wide deployments in a very simple way. J2EE applications for OC4J can now be deployed to a cluster, or a new node can be added to the cluster with ease.
Oracle HTTP Server includes a module called mod_oc4j
that routes requests from the OC4J instances in a cluster. OPMN helps ensure that mod_oc4j
instances knows of all the OC4J in the system without requiring a system administrator to do any configuration.
Oracle HTTP Server consists of several components that run within the same process. These components provide the extensive list of features that Oracle HTTP Server offers when handling client requests. The following are the major components:
HTTP Listener: Oracle HTTP Server is based on an Apache HTTP listener to serve client requests. An HTTP server listener handles incoming requests and routes them to the appropriate processing utility.
Modules (mods): Modules both implement and extend the basic functionality of Oracle HTTP Server. Many of the standard Apache modules are included with Oracle HTTP Server. Oracle also includes several internal modules that are specific to Oracle Application Server components.
Perl Interpreter: A persistent Perl runtime environment embedded in Oracle HTTP Server through mod_perl.
Figure 1-1 shows the path of various requests through Oracle HTTP Server components, where a client machine connects to Oracle Application Server Web Cache, which in turn connects to Oracle HTTP Server. Oracle HTTP Server, using various modules, connects to the database through OC4J, FastCGI, or the Perl interpreter.
Figure 1-1 Oracle HTTP Server Request Flow
Table 1-1 identifies the modules shipped with Oracle HTTP Server. Modules extend the basic functionality of the Web server, and support integration between Oracle HTTP Server and other Oracle Application Server components. Note that the list differs from the Apache open source distribution (given the inclusion of Oracle modules).
Table 1-1 Oracle HTTP Server Modules
Module | Notes | Module | Notes |
---|---|---|---|
|
|
|
Deprecated. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle module. |
|
|
|
Oracle module. |
|
|
|
Oracle module. |
|
|
|
Oracle module. |
|
Oracle module |
|
Oracle module. |
|
|
|
|
|
UNIX systems only. |
|
|
|
|
|
Oracle module. |
|
|
|
|
|
Oracle module. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UNIX systems only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Deprecated. |
|
Oracle module. |
|
|
|
|
Oracle provides technical support for the following Oracle HTTP Server features and conditions:
Modules included in the Oracle distribution. Oracle does not support modules obtained from any other source, including the Apache Software Foundation. Oracle HTTP Server will still be supported when non-Oracle provided modules are included. If it is suspected that the non-Oracle provided modules are contributing to reported problems, customers may be requested to reproduce the problems without those modules being included.
Problems that can be reproduced within an Apache configuration consisting only of supported Oracle Apache modules.
Use of the included Perl interpreter within the supported Apache configuration.
Oracle HTTP Server can be managed using the following two methods:
You can manage Oracle HTTP Server using Oracle Enterprise Manager 10g. Oracle Enterprise Manager 10g enables you to manage your server from a Web browser using Oracle Enterprise Manager 10g Application Server Control Console (Application Server Control Console).
You can manage Oracle HTTP Server using the following command line tools:
Provides a command-line utility for Oracle Process Manager and Notification Server (OPMN) for process management. It is located in
UNIX: ORACLE_HOME
/opmn/bin
Windows: ORACLE_HOME
\opmn\bin
Provides a command-line utility for Distributed Configuration Management (DCM) for configuration management and application deployment. It is located in
UNIX: ORACLE_HOME
/dcm/bin
Windows: ORACLE_HOME
\dcm\bin
You must use the DCM utility dcmctl
in circumstances such as:
Managing clusters and farms of Oracle Application Server instances.
Managing the configuration of individual components, such as OC4J, Oracle HTTP Server instances, and Oracle Process Manager and Notification Server, or Java Authentication and Authorization Service.
Performing cluster-wide OC4J application deployment.
Managing versions of configuration with archive, save and restore, and import and export functions.
Oracle HTTP Server is managed by Oracle Process Manager and Notification Server (OPMN). You can use Oracle Enterprise Manager 10g Application Server Control Console to start, stop, and restart the server.
For command-line management, you can use the opmnctl utility to start, stop, and restart the server.
You must always use OPMN to start, stop and restart Oracle HTTP Server. Otherwise, the configuration management infrastructure cannot detect or communicate with the Oracle HTTP Server processes, and problems may occur.
To determine the state of Oracle HTTP Server, use the following command:
opmnctl status
The processes are listed with their current state (Up, Down, and so on.)
To start Oracle HTTP Server, use the startproc
command:
UNIX: ORACLE_HOME
/opmn/bin> opmnctl
[verbose]
startproc ias-component=HTTP_Server
Windows: ORACLE_HOME
\opmn\bin> opmnctl
[verbose]
startproc ias-component=HTTP_Server
To stop Oracle HTTP Server, use the stopproc
command:
UNIX: ORACLE_HOME
/opmn/bin> opmnctl
[verbose]
stopproc ias-component=HTTP_Server
Windows: ORACLE_HOME
\opmn\bin> opmnctl
[verbose]
stopproc ias-component=HTTP_Server
Restarting Oracle HTTP Server performs a graceful restart, which is invisible to clients. In a graceful restart, on UNIX, a USR1
signal is sent. When the process receives this signal, it tells the children to exit after processing the current request. (Children that are not servicing requests exit immediately.)
The parent re-reads the configuration files and re-opens the log files, replacing the children with new children in accordance with the settings it finds when re-reading the configuration files. It always observes the process creation settings (MaxClients
, MaxSpareServers
, MinSpareServers
) specified, and takes the current server load into account.
To restart Oracle HTTP Server, use the restartproc
command:
UNIX: ORACLE_HOME
/opmn/bin> opmnctl
[verbose]
restartproc ias-component=HTTP_Server
Windows: ORACLE_HOME
\opmn\bin> opmnctl
[verbose]
restartproc ias-component=HTTP_Server