The HTTP Server plug-in for z/OS® is part of the
web server plug-ins component of WebSphere® Application
Server for z/OS. To use this plug-in, you must have a Version
5.3 HTTP Server for z/OS configured as part of a z/OS system.
About this task
Note: In WebSphere Application Server for
z/OS Version 7 and earlier, the web server plug-in for IBM® HTTP Server (IHS/390) was located in the
bin directory of the WebSphere
Application Server for z/OS base product. In Version 8.0 and
later, this plug-in is located in the bin directory of the web Server Plug-ins
product file system, and the plugin-in has been renamed from
ihs390WAS70Plugin_http.so
to ihs390WASPlugin_http.so
.
Version 5.3 HTTP Server for z/OS is provided with the z/OS base operating system. HTTP Server for z/OS is not an Apache-based server. HTTP Server for z/OS does not support 64-bit architecture and does not support
IPv6.
This procedure outlines how to install and configure the plug-in for HTTP Server for z/OS.
Procedure
-
Make sure a Version 5.3 HTTP Server for z/OS is
installed on a z/OS system.
-
Install web server plug-ins.
Use IBM Installation Manager to install the web server
plug-ins for WebSphere Application Server for z/OS, and mount the product file system on your target z/OS system. By default, the plug-ins are located in the
/usr/lpp/WebSphere/Plugins/V9R0 directory.
-
If the HTTP Server does not have access to the web server plug-ins product file system, perform
the following steps to download, in binary format, the HTTP Server plug-in for z/OS and the plugin-cfg.xml file from the LPAR on which the application server
is running to the LPAR where the HTTP Server is installed.
The directory into which the plug-in is downloaded must be readable to the MVS™ ID under which the HTTP Server is executing.
-
Use FTP or another file transfer mechanism to download, in binary format, the HTTP Server
plug-in for z/OS from your installation directory to the HTTP
Server's system, and into a directory that is readable to the MVS ID under which the HTTP Server is executing.
The ihs390WASPlugin_http.so DLL is located in the
/bin/ directory of the
web server plugin-ins; for example:
/usr/lpp/WebSphere/Plugins/V9R0/bin
-
Set the permissions (755 +p) on the plug-in's ihs390WASPlugin_http.so file.
Using an authorized z/OS user ID, issue the following
commands from an OMVS command line prompt to turn on the "p" bit in the HFS where the HTTP Server
plug-in for z/OS is now
located:
chmod 755 ihs390WASPlugin_http.so
extattr +p ihs390WASPlugin_http.so
To check the
result of the
extattr command, issue the following
command:
ls -E ihs390WASPlugin_http.so
Then look for "ps" in the extended attributes. For
example:
-rwxr-xr-x -ps- 1 USER123 WASUSER 1482752 Aug 2 14:17 ihs390WASPlugin_http.so
-
Run setup.sh to create two files, httpd.conf and httpd.enwars, for customizing and
configuring the web server.
Create the httpd.conf and httpd.enwars files in the
/etc directory. The setup.sh file is located in the
usr/lpp/internet/sbin directory.
-
Add ServerInit, ServerTerm, and Service directives to the httpd.conf configuration
file of the HTTP Server:
- Add the following ServerInit and ServerTerm directives to indicate the entry points to the
plug-in's initialization and exit routines. These routines exist as entry points init_exit, and
term_exit, respectively, within the ihs390WASPlugin_http.so DLL file.
Avoid trouble:
- In this discussion, the ServerInit and Service directives are split for printing purposes. In
the actual httpd.conf file, enter each of these directives on a single line.
- In the ServerInit directive, http_plugin_conf represents the full path to the location
of the plugin-cfg.xml file.
- In the ServerInit, Service and ServerTerm directives, http_plugin_dir represents either:
- The full path of the WebSphere Application Server
web server plug-ins directory, such as /usr/lpp/WebSphere/Plugins/V9R0, if the
HTTP Server is on the same LPAR as the WebSphere
Application Server, or
- The full path that you designated as the destination of the FTP operation in the previous step,
if the HTTP Server is not on a system with access to the web server plug-ins product file
system.
ServerInit /http_plugin_dir/bin/
ihs390WASPlugin_http.so:init_exit /http_plugin_conf/
plugin-cfg.xml
ServerTerm /http_plugin_dir/bin/ihs390WASPlugin_http.so:term_exit
- Add the following Service directive for each application that will be using the web server
plug-in. This directive indicates the entry point to the plug-in's request routine. The request
routine exists as the entry point service_exit within the
ihs390WASPlugin_http.so Dynamic Link Library (DLL)
file.
Service /webapp_contextroot/* /http_plugin_dir/
ihs390WASPlugin_http.so:service_exit
webapp_contextroot
is the application's context root
For transitioning users: The web server plug-in for the z/OS HTTP Server, Version 5.3, uses an SSL interface that us
different from the SSL interface that was used in previous versions of the product. z/OS PTF UK35083 includes the SSL interface change for the z/OS HTTP Server, Version 5.3, that corresponds to this web server plug-in
change. Therefore, this PTF must be applied to your system before the new web server plug-in SSL
interface can function properly.
You must also include the SSLMode multi
option in the httpd.conf file for the z/OS HTTP Server,
Version 5.3. If the SSLMode multi option is not specified in the httpd.conf
file, or if you do not have z/OS PTF UK35083 applied to your
system, you might receive error message IMW0584W, that indicates that the SSL mode that is specified
for the HTTP Server is not compatible with the SSL mode for the web server plug-in that is used with
the z/OS HTTP Server, Version 5.3. In either of these
situations, unpredictable results might occur.
Avoid trouble:
- The HTTP Server interprets a blank in a directive specification as a delimiter and a number sign
(#) as the beginning of a comment that should be ignored. Therefore, if you need to use a blank or
number sign in a directive, you must include a backslash (\) before the blank or number sign to
enable the HTTP Server to correctly process the directive.
- If a servlet sets an HTTP response code by any means, such as using methods lastModified() or
setStatus(), and the client does not receive the expected response code, add the following directive
to the HTTP Server configuration file:
ServiceSync On
-
If the httpd.conf file contains a Pass directive that is set to /*, make sure that the
Service directives precede the Pass directive.
-
Create a web server definition for the local or remote z/OS web server using either the Profile Management Tool or the zpmt command.
-
Configure the plug-in.
Use either the administrative console or issue the genplugincfg command to create your
plugin-cfg.xml file.
Note: Both methods create the plug-in configuration file,
plugin-cfg.xml, in ASCII format. (Previously, the configuration file was
generated in EBCDIC format.)
- If you need to edit this file, issue the following command to convert the file to EBCDIC
format:
> iconv -f ISO8859-1 -t IBM-1047 plugin-cfg.xml.ASCII > plugin-cfg.xml.EBCDIC
- Edit the file, and then issue the following command to convert it back to ASCII format:
> iconv -f IBM-1047 -t ISO8859-1 plugin-cfg.xml.EBCDIC > plugin-cfg.xml.ASCII
To use the administrative console:
-
Select web_server_name.
-
Select or click on one or more of the following topics to manually configure the
plugin-cfg.xml file:
- Caching
- Request and response
- Request routing
- Service
-
Click OK.
-
You might need to stop the application server and then start the application server again to
enable the web server to locate the plugin-cfg.xml file.
-
Make sure the virtual host is configured with an alias for the port number used by the z/OS V5.3 HTTP Server. If you manually configured the
plugin-cfg.xml file, in the administrative console, click web_server_name > Request routing, and verify that Physically using the port specified
in request is selected for the Virtual host matching property.
-
Stop the application server and the HTTP Server and start them again.
The configuration is complete. To activate the configuration, stop and restart both the
application server and the HTTP Server.
Results
If the HTTP Server plug-in for z/OS comes up successfully
when the HTTP Server starts again, you receive the following
messages:
WebSphere HTTP plug-in for z/OS Version 6.00 Service Level 0 is starting
WebSphere HTTP plug-in for z/OS initializing with configuration file :
fully_qualified_path_to_the_plugin-cfg.xml_file
WebSphere HTTP plug-in for z/OS initialization went OK :-)
What to do next
After the application server, the HTTP Server and the plug-in are properly configured:
- The product can use this plug-in to perform regular plug-in functions.
- Requests can be routed from a browser, through the HTTP Server and plug-in, to an application
server on which the requested application is deployed. (New requests are sent to randomly selected
application servers on which this application is deployed. After a session is established, requests
get routed back to the application server assigned to the original request.)
- Private headers can be used as a mechanism for forwarding proxy information from the web server
plug-in to an application server on a z/OS system. (This
information is not otherwise included with HTTP requests.)