Set a Web server and an appserver on separate machines
This page describes installing a Web server plug-in that WAS provides to communicate with a particular brand of Web server. This procedure describes installing the Web server and its Web server plug-in for WAS on one machine and configuring the appserver in the default profile on another machine to communicate with the Web server.
When multiple profiles exist, the plug-ins installer configures only the default profile.
If WAS v7 family supports a particular brand of Web server, such as IHS or IIS, then WAS v7 provides a binary plug-in for the Web server that install.
If WAS v7 family does not provide a binary plug-in for a particular brand of Web server, then the Web server is not supported. The purpose of the binary plug-in is to provide the communication protocol between the Web server and the appserver.
Suppose created a new profile. Suppose also to use a Web server. You must install a new Web server for the new profile and use the Plug-ins installation wizard to install the binary plug-in module and to configure both the Web server and the appserver.
If the Web server is not already installed, we can still install the plug-ins for future use. If WAS v7 is not installed, we can still install the plug-ins. However, it is recommended that you install the Web server and WAS v7 before installing the plug-ins for the supported Web server.
The Plug-ins installation wizard installs the plug-in module, configures the Web server for communicating with the appserver, and creates a Web server configuration definition in the appserver, if possible.
This procedure configures the appserver profile that is the default profile on the machine. A one-to-one relationship exists between a Web server and the appserver.
If planning to add the appserver node into a dmgr cell but have not done so yet, start the dmgr and federate the node before installing the plug-in. We cannot add an appserver with a Web server definition into the dmgr cell.
The following topology is considered a remote topology because the Web server is on a separate machine. The diagram shows a typical remote topology for a distributed environment:
This page describes the installation of a Web server on one machine and the appserver on a separate machine. In this situation, the Plug-ins installation wizard on one machine cannot create the Web server definition in the appserver configuration on the other machine.
In such a case, the Plug-ins installation wizard creates a script on the Web server machine that we can copy to the appserver machine. Run the script on the appserver machine to create the Web server configuration definition within the appserver configuration.
Perform the following procedure to install the plug-in and configure both the Web server and the appserver.
- Log on to the operating system.
If installing as a non-root or non-administrative user, then there are certain limitations.
In addition, select a umask that allows the owner to read/write to the files, and allows others to access them according to the prevailing system policy. For root, a umask of 022 is recommended. For non-root users, a umask of 002 or 022 could be used, depending on whether or not the users share the group.
To verify the umask setting, issue the following command:
umaskTo set the umask setting to 022, issue the following command:umask 022(Windows) When installing as an administrative user on a Windows operating system, a Windows service is automatically created to autostart the appserver. The installer user account must have the following advanced user rights:
- Act as part of the operating system
- Log on as a service
For example, on some Windows operating systems, click...
Administrative Tools | Local Security Policy | User Rights Assignments
...to set the advanced options.
(Windows) If we plan to run the appserver as a Windows service, do not install from a user ID that contains spaces. A user ID with spaces cannot be validated. Such a user ID is not allowed to continue the installation. To work around this restriction, install with a user ID that does not contain spaces.
- Install WAS ND on Machine A.
- Install the IHS or another supported Web server on Machine B.
- Create a new host alias for the default virtual host.
If we configured the Web server to use a port other than port 80, then add a new host alias for that port for the default host. For example, when running as non-root, IHS is configured with a default port value of 8080.
- Launch the Plug-ins installation wizard on the machine with the Web server.
Select the Plug-ins installation wizard from the launchpad or change directories to the plugin directory on WAS disc or in the downloaded installation image and issue the install command.
- Clear the check box for the roadmap or select the check box to view the roadmap, then click Next.
If unsure of which installation scenario to follow, display the roadmap instead. Print and keep the roadmap as a handy overview of the installation steps.
Press Ctrl-P to print the roadmap if the Web browser navigation controls and the menu bar are not present on the browser window that displays the Plug-ins roadmap. Press Ctrl-W to close the browser window if the navigation controls and the menu bar do not display. Or close the browser window with the window control in the title bar.
- Read the license agreement and accept the agreement it if we agree to its terms. Click Next when we are finished.
- If the system does not pass the prerequisites check, stop the installation, correct any problems, and restart the installation. If the system passes the prerequisites check, click Next.
Look for the appropriate log file for information about missing prerequisites:
- If we stop the installation, see the file...
temporaryPluginInstallLog.txt
...in the temporary directory of the user who installed the plug-ins. For example, the /tmp/temporaryPluginInstallLog.txt file might exist if the root user installed the plug-ins on an operating system such as AIX or Linux.
- If we continue the installation in spite of warnings about missing prerequisites, review...
PLUGINS_ROOT/logs/install/log.txt
- Select the type of Web server that we are configuring and click Next.
The Plug-ins installation wizard panel prompts you to identify the Web servers to configure. Actually we can select only one Web server each time you run the Plug-ins installation wizard.
Stop any Web server while we are configuring it. A step later in the procedure directs you to start the Web server as you begin the snoop servlet test.
If we select the Web server identification option labeled None, the Web server installs the binary plug-ins but does not configure the Web server.
- Select Web server machine (remote) and click Next.
- Accept the default location for the installation root directory for the plug-ins. Click Next.
We can type another new directory or click Browse to select an empty directory. The fully qualified path identifies the plug-ins installation root directory.
The default location is shown in Directory conventions.
Restriction: The installation directory cannot contain any unsupported characters.
A possibility exists that the Web server might run on a platform that WAS does not support.
- Click Browse to select the configuration file for the Web server, verify that the Web server port is correct, and then click Next when we are finished.
Select the file and not just the directory of the file. Some Web servers have two configuration files and require you to browse for each file.
The following list shows configuration files for supported Web servers:
The wizard displays a naming panel for the nickname of the Web server definition.
- Specify a nickname for the Web server. Click Next when we are finished.
The wizard uses the value to name configuration folders in the plug-ins installation root directory. The wizard also uses the name in the configuration script for the appserver to name the Web server definition.
If the appserver profile already has a Web server definition, delete the Web server definition before continuing.
$AdminTask deleteServer { -serverName webserver1 -nodeName webserver1_node }
$AdminTask removeUnmanagedNode { -nodeName webserver1_node }
$AdminConfig saveIn these commands, webserver1 is the Web server name.
- Accept the default location for the plugin-cfg.xml file that the wizard creates on the Web server machine, then click Next.
We can type a change to the value or click Browse to select a file in another location. If we do not accept the default location, plugin-cfg.xml must exist.
- Identify the host name or IP address of Machine A, which is the appserver machine, then click Next.
- Examine the summary panel. Click Next when we are finished.
The panel notifies you that we have manual steps to perform to complete the installation and configuration.
The type of Web server, the nickname of the Web server, and the location of plugin-cfg.xml displays on the panel.
The Plug-ins installation wizard creates the configureWebServer script in the PLUGINS_ROOT/bin/ directory on Machine B (the machine with the Web server).
The Plug-ins installation wizard also creates plugin-cfg.xml in the PLUGINS_ROOT/config/Web_server_name directory.
The Web server reads plugin-cfg.xml to determine the applications that the appserver on Machine A can serve to the Web server on Machine B. Whenever the configuration changes, the appserver regenerates the file. When regeneration occurs, propagate, or copy the actual plugin-cfg.xml file from the appserver machine to the Web server machine. We can automatically propagate the file to the IHS product.
- Click Next on the pre-installation summary panel to begin the installation or click Back to change any characteristics of the installation.
The panel specifies the plug-ins installation root directory, the Web server plug-ins feature, and the disk size of the code that installs when you click Next.
- After the wizard installs the code and creates the uninstaller program, examine the post-installation summary panel. Click Next when we are finished to display the Plug-ins installation roadmap.
The Plug-ins installation wizard installs the binary plug-in module. On a Linux system, for example, the installation creates the PLUGINS_ROOT directory. The PLUGINS_ROOT/config/Web_server_name directory contains plugin-cfg.xml.
The wizard displays the name and location of the configuration script and plugin-cfg.xml. The wizard also displays the type of Web server configured and the nickname of the Web server.
If a problem occurs and the installation is unsuccessful, examine the logs in the PLUGINS_ROOT/logs directory. Correct any problems and reinstall.
- Close the road map and click Finish to exit the wizard.
Log files from the installation are in...
PLUGINS_ROOT/logs/install
- Copy the configureWebServer script from Machine B (the machine with the Web server) to the APP_ROOT /bin directory on Machine A (the appserver machine).
Web_server_name is the nickname of the Web server specified in step 12. Web_server_name is not a vendor name, such as IIS or Apache.
On an operating system such as AIX or Linux, the file is configureWebServer.sh.
On a Windows system, the file is configureWebServer.bat.
For example, on a Linux system with an IHS named web_server_1 in the default location, copy PLUGINS_ROOT/bin/configureweb_server_1.sh from Machine B (the machine with the Web server) to the APP_ROOT/bin directory on Machine A (the appserver machine).
If one platform is a system such as AIX or Linux and the other is a Windows platform, copy the script from the crossPlatformScripts directory.
For example:
PLUGINS_ROOT/bin/configureWebServer.sh
- Compensate for file encoding differences to prevent script failure.
The content of the configureWebServer.bat script or the configureWebServer.sh script can be corrupt if the default file encoding of the two machines differs.
This scenario is possible when one machine is set up for a DBCS locale and the other machine is not.
Determine the file encoding and use one of the following procedures to circumvent the failure. To determine the default file encoding, run the appropriate command.
- Run the locale command on a system such as AIX or Linux.
- Run the CHCP command on a Windows machine.
Use the result of the command on each machine as the value for the web_server_machine_encoding variable and the application_server_machine_encoding variable in one of the following procedures.
- Web server running on a system such as AIX or Linux
Suppose that the Web server is running on a Linux machine and ND is running on a Windows machine. Before you FTP the Web server definition configuration script to the Windows machine in binary mode, run the following command on the system to encode the file:
iconv -f web_server_machine_encoding -t application_server_machine_encoding configureWebServer.batThe name of the Web server (nick name) is used in the name of the script file. The name cannot contain characters from a double-byte character set (DBCS) if we intend to set up IHS for automatic propagation.
- Web server running on a Windows system
Suppose that the Web server is running on a Windows machine and ND is running on a machine with a system such as AIX or Linux. You must first download the iconv utility from a third party because the command is not included by default on Windows systems.
Before you FTP the Web server definition configuration script in binary mode to a system such as AIX or Linux, run the following command on the machine to encode the file:
iconv -f web_server_machine_encoding -t application_server_machine_encoding configureWebServer.shFor example, if the target machine is z/OS, we might use this command to convert the file from ASCII to EBCDIC, handling the end-of-line characters correctly:
iconv -f ISO8859-1 -t IBM-1047 configureweb_server_name.sh > new_script_name.shOmit the continuation characters (\) if we enter the command on one line.
If the conversion mapping is not supported by the iconv command on the system, copy the contents of the Web server configuration script to a clip board and paste it onto the machine where the appserver is running.
- Start the appserver on Machine A.
Use the startServer command...
$WP_PROFILE/bin/startServer.sh server1
- Open a command window and change to the profile directory where the Web server should be assigned. Run the script that you copied to Machine A (the appserver machine).
we need the following parameters:
- Profile Name
- (Optional) Admin user ID
- (Optional) Admin user password
For example, you could enter the following:
configurewebserver1.sh Dmgr01 my_user_ID my_PasswordThe web server will be configured via wsadmin.The contents of the configurewebserver1.sh script will be similar to this:
wsadmin.bat -profileName AppSrv01 -user my_user_ID -password my_Password -f "%WAS_HOME%\bin\configureWebserverDefinition.jacl" webserver1 IHS..- From the admin console of the dmgr, click...
System administration | Save Changes to Master Repository | Synchronize changes with Nodes | Save- Domino Web server only: Set the WAS_PLUGIN_CONFIG_FILE environment variable.
- Regenerate plugin-cfg.xml on Machine A (the appserver machine) using the admin console. Go to...
Servers | Web server | Web_server | Generate Plug-in
During the installation of the plug-ins, the default plugin-cfg.xml file is installed on Machine B (the machine with the Web server) in...
PLUGINS_ROOT/config/Web_server_name
The Web server plug-in configuration service regenerates plugin-cfg.xml automatically. To use the current plugin-cfg.xml file from the appserver, propagate plugin-cfg.xml.
This step shows you how to regenerate plugin-cfg.xml. WAS products are configured to automatically regenerate the file each time a significant event occurs. Such events include installing applications on the appserver and the Web server, for example. Creating a new virtual host is another such event.
- Propagate plugin-cfg.xml from the appserver to the Web server using the admin console. Click Servers > Web server. Select the Web server, then click Propagate Plug-in. Web servers other than IHS require manual propagation.
The Web server plug-in configuration service propagates plugin-cfg.xml automatically for IHS 7.0 only. For all other Web servers, propagate the plug-in configuration file by manually copying plugin-cfg.xml from...
$WP_PROFILE/config/cells/cell_name/nodes/node_name/servers/Web_server_name
...on Machine A (the appserver machine) to...
PLUGINS_ROOT/config/Web_server_name
...on Machine B (the machine with the Web server).
- Start the Snoop servlet to verify the ability of the Web server to retrieve an application from the appserver.
Test the environment by starting the appserver, the Web server, and using the snoop servlet with an IP address.
- Start the appserver. In an ND environment, the Snoop servlet is available in the cell only if we included the DefaultApplication when adding the appserver to the cell. The -includeapps option for the addNode command migrates the DefaultApplication to the cell. If the application is not present, skip this step.Change directories to...
$WP_PROFILE/bin
...and run the startServer command:
./startServer.sh server1
- Start the IHS or the Web server that we are using.
cd IHS_HOME/bin
./apachectl start- Point the browser to http://localhost:9082/snoop to test the internal HTTP transport provided by the appserver. Point the browser to http://hostname/snoop to test the Web server plug-in.
The HTTP Transport port is 9082 by default and must be unique for every profile. The port is associated with a virtual host named default_host, which is configured to host the installed DefaultApplication and any installed Samples.
The snoop servlet is part of the DefaultApplication. Change the port to match the actual HTTP Transport port.
- Verify that snoop is running.
Either Web address should display the Snoop Servlet - Request/Client Information page.
- Remote IHS only
Verify that the automatic propagation function can work on a remote IHS by using the following steps. This procedure is not necessary for local Web servers.
- Create user=adminUser, password=adminPassword in...
IHS_root/conf/admin.passwd
For example:
c:\ws\ihs60\bin\htpasswd -cb c:\ws\ihs60\conf\admin.passwd adminUser adminPassword
- Use the admin console of the deployment manager or the appserver to enter the User ID and password information createdd for the admin user of IHS. Go to...
Servers | Web server | Web_server_definition | Remote Web server administration
Set the following values:
admin Port=8008, User Id=adminUser, =adminPassword- Set the correct read/write permissions for httpd.conf and plugin-cfg.xml. See...
IHS_root/logs/admin_error.log
Automatic propagation of the plug-in configuration file requires the IBM HTTP admin server to be up and running. If managing an IHS using the WAS admin console, the following error might display:
"Could not connect to IHS Administration server error"Perform the following procedure to correct the error:
- Verify that the IHS administration server is running.
- Verify that the Web server host name and the port that is defined in the WAS admin console matches the IHS administration host name and port.
- Verify that the fire wall is not preventing you from accessing the IHS administration server from the WAS admin console.
- Verify that the user ID and password specified in the WAS admin console under remote managed, is created in the admin.passwd file, using the htpasswd command.
- If trying to connect securely, verify that you export the IHS administration server keydb personal certificate into the WAS key database as a signer certificate.
This key database is specified by the com.ibm.ssl.trustStore directive in sas.client.props in the profile where your admin console is running. This consideration is primarily for self-signed certificates.
- If we still have problems, check the IHS admin_error.log file and the WAS logs (trace.log file) to determine the cause of the problem.
Results
This procedure results in the installation of the Web server plug-ins for WAS on a Web server machine. The Plug-ins installation wizard also configures the Web server to support an appserver on a separate machine.
The installation of the binary plug-in modules results in the creation of the Plugins directory and several subdirectories.
The following directories are among those created on a Linux system...
- PLUGINS_ROOT/uninstall contains the uninstaller program
- PLUGINS_ROOT/bin contains the binary plug-ins for all supported Web servers
- PLUGINS_ROOT/logs contains log files
- PLUGINS_ROOT/properties contains version information
- PLUGINS_ROOT/roadmap contains the roadmap for the Plug-ins installation wizard
What to do next
See Select a Web server topology diagram and roadmap for an overview of the installation procedure.
See Web server configuration for more information about the files involved in configuring a Web server.
See Plug-ins configuration for information about the location of the plug-in configuration file.
See Edit Web server configuration files for information about how the Plug-ins installation wizard configures supported Web servers.
Related tasks
Install Web server plug-ins