The HTTP Server plug-in for z/OS® is part of the
web server plug-ins component of WebSphere® Application
Server for z/OS Version 8.5. 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
For transitioning users: 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
Version 8.5, and mount the product file system on your target z/OS system. By default, the plug-ins are located in the
/usr/lpp/zWebSphere_Plugins/V8R5 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/zWebSphere_Plugins/V8R5/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/zWebSphere_Plugins/V8R5, 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.)