[z/OS]

Installing and configuring the plug-in for V5.3 HTTP Server for z/OS

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

  1. Make sure a Version 5.3 HTTP Server for z/OS is installed on a z/OS system.
  2. 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.
  3. 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.
    1. 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 
    2. 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
  4. 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.
  5. 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:
        1. 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
        2. 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:
    1. 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.
    2. 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
  6. If the httpd.conf file contains a Pass directive that is set to /*, make sure that the Service directives precede the Pass directive.
  7. Create a web server definition for the local or remote z/OS web server using either the Profile Management Tool or the zpmt command.
  8. 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.)
    1. 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
    2. 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:

    1. Select Servers > Server Types > Web Servers > web_server_name > Plug-in properties.
    2. Select Automatically generate plug-in configuration file 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
    3. Click OK.
    4. 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.
  9. 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 Servers > Server Types > Web Servers > web_server_name > Plug-in properties > Request routing, and verify that Physically using the port specified in request is selected for the Virtual host matching property.
  10. 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.)