Configuration d'un plug-in de serveur Web pour le profil Liberty
Vous pouvez configurer un plug-in de serveur Web pour que, lorsque le serveur Web reçoit une demande HTTP concernant des ressources dynamiques, la demande soit transmise au profil Liberty.
Pourquoi et quand exécuter cette tâche
Un plug-in de serveur Web est utilisé pour transférer les demandes HTTP d'un serveur Web pris en charge vers un ou plusieurs serveurs d'applications. A la réception d'une demande, le plug-in vérifie celle-ci par rapport aux données de configuration figurant dans le fichier plugin-cfg.xml. Les données de configuration mappent l'URI de la demande HTTP au nom d'hôte d'un serveur d'applications. Le plug-in utilise ensuite ces informations pour transférer la demande vers le serveur d'applications.
Procédure
- Installez un serveur Web pris en charge, comme IBM® HTTP Server qui est livré avec IBM WebSphere Application Server. Voir Installation d'IBM HTTP Server.
Le serveur Web fourni avec IBM i est déjà installé sous le produit 5761-DG1 for IBM i V6R1 ou 5770-DG1 for IBM i V7R1. Le serveur Web IBM i est appelé IBM HTTP Server for IBM i. Le serveur IBM HTTP Server fourni avec WebSphere Application Server ne s'exécute pas sous IBM i.
- Installez les plug-ins de serveur Web
et
WebSphere Customization
Toolbox (WCT).
- Pour installer le plug-in de serveur Web, voir Installation et configuration des plug-ins du serveur Web.
Pour IBM i, voir Installation et configuration des plug-ins du serveur Web.
- Pour installer WTC,
voir
Installation
et utilisation de
WebSphere Customization
Toolbox.
Pour IBM i, installez le WCT sur votre poste de travail. Toutefois, vous n'avez pas besoin d'installer les outils de WCT. Java™ SDK installé avec le WCT est utilisé pour exécuter l'utilitaire jconsole Java lors d'une étape ultérieure.
- Pour installer le plug-in de serveur Web, voir Installation et configuration des plug-ins du serveur Web.
Configurez le plug-in de serveur Web pour le serveur Web de votre choix à l'aide de WTC.
- Lorsque vous y êtes invité dans WTC, choisissez le scénario "distant" et spécifiez le nom d'hôte sur lequel le profil Liberty est accessible.
- Ne copiez pas et n'exécutez pas le script configureWebserver généré, car il n'est pas requis avec le profil Liberty.
- Démarrez le serveur qui héberge vos applications et vérifiez que
la fonction
localConnector-1.0
, ou restConnector-1.0 si vous configurez un plugin pour IBM i, et autres fonctions requises sont incluses dans la configuration du serveur.
Pour le transfert des demandes depuis un serveur Web, vous pouvez spécifier les attributs webserverPort et webserverSecurePort dans l'élément pluginConfiguration. Par défaut, la valeur de webserverPort est 80 et celle de webserverSecurePort est 443. Vous pouvez cependant changer ces réglages. Par exemple, pour les plateformes Linux et apparentées, si vous êtes un utilisateur non root, vous devez utiliser des numéros de port supérieurs à 1024.
Pour prendre connaissance de tous les attributs de l'élément pluginConfiguration pouvant être configurés, voir Eléments de configuration dans le fichier server.xml.
Voici un exemple de fichier de configuration server.xml :<server description="new server"> <featureManager> <feature>localConnector-1.0</feature> <feature>jsp-2.2</feature> </featureManager> <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" /> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080"> <tcpOptions soReuseAddr="true" /> </httpEndpoint> <pluginConfiguration webserverPort="80" webserverSecurePort="443" sslKeyringLocation="path/to/sslkeyring" sslStashfileLocation="path/to/stashfile" sslCertlabel="definedbyuser"/> <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" /> <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" /> </server>
Pour IBM i, incluez la fonction restConnector-1.0 à la place de localConnector-1.0. Pour plus de détails, voir Configuration d'une connexion JMX sécurisée dans le profil Liberty.
Voici un exemple de fichier de configuration de serveur server.xml pour IBM i :
<server description="new server"> <!-- Enable features --> <featureManager> <feature>jsp-2.2</feature> <feature>restConnector-1.0</feature> </featureManager> <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" /> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"> <tcpOptions soReuseAddr="true" /> </httpEndpoint> <quickStartSecurity userName="testuser" userPassword="security" /> <pluginConfiguration webserverPort="80" webserverSecurePort="443" sslKeyringLocation="path/to/sslkeyring" sslStashfileLocation="path/to/stashfile" sslCertlabel="definedbyuser"/> <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" /> <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" /> </server>
Remarque :- Si vous configurez le plug-in de serveur Web en vue de l'utilisation de SSL, vous devez activer la fonction Liberty ssl-1.0 dans le profil Liberty.
- Si le serveur Web utilise les ports par défaut, il n'est pas nécessaire d'inclure l'élément pluginConfiguration dans le fichier server.xml.
- Le fichier de clés qui est utilisé par le plug-in de serveur Web doit être un fichier de clés certifiées CMS qui peut être créé à l'aide de l'utilitaire Key Management (iKeyman). Vous ne pouvez pas utiliser le fichier de clés JKS créé par le profil Liberty ou le profil complet pour le plug-in de serveur Web, bien que vous deviez échanger les certificats de signataire entre le fichier de clés du plug-in de serveur Web et le fichier de clés du profil Liberty.
- Pour configurer l'emplacement du fichier journal du plug-in, ajoutez le fragment de code suivant au fichier server.xml :
ou<Log LogLevel="Error" Name="String\logs\String\http_plugin.log"/>
<Log LogLevel="Error" Name="/chemin du fichier journal/http_plugin.log"/>
- Générez le fichier plugin-cfg.xml pour votre serveur de profil Liberty et vos applications en appelant le bean géré
WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig.
- Avec le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une invite de commande. Par exemple, exécutez la commande suivante :Le processus du serveur est répertorié dans les choix en attente de connexion.
c:\java\bin\jconsole
Pour IBM i, exécutez l'utilitaire jconsole Java à partir d'une fenêtre de commande en utilisant Java SDK installé avec le WCT sur votre poste de travail. Par exemple, effectuez les étapes suivantes :- Créez le répertoire C:\restClient sur votre poste de travail.
- Copiez ${wlp.install.dir}/clients/restConnector.jar dans le répertoire C:\restClient de votre poste de travail.
- Copiez ${server.output.dir}/resources/security/key.jks dans le répertoire C:\restClient de votre poste de travail.
- Dans une fenêtre de commande, saisissez SET JAVA_HOME=wct_root\java.Remarque : Modifiez temporairement wct_root\java\jre\lib\security\java.security en mettant en commentaire les deux lignes qui définissent les fabriques de sockets SSL pour les remplacer par les fabriques de sockets SSL de WebSphere Application Server. Cette modification est documentée dans la section relative au traitement des incidents SSL de la rubrique sur l'identification et la résolution des incidents.
- A partir de la même fenêtre de commande, exécutez l'utilitaire jconsole Java.Par exemple, exécutez la commande suivante :
Vous pouvez également avoir besoin du paramètre suivant :"%JAVA_HOME%"\bin\jconsole -J-Djava.class.path="%JAVA_HOME%"\lib\jconsole.jar;"%JAVA_HOME%"\lib\tools.jar; C:\restClient\restConnector.jar -J-Djavax.net.ssl.trustStore=C:\restClient\key.jks -J-Djavax.net.ssl.trustStorePassword=Liberty -J-Djavax.net.ssl.trustStoreType=jks
-J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
- Connectez-vous à votre serveur, puis cliquez sur l'onglet MBeans.
Une fois l'outil jConsole démarré, sélectionnez Remote Process, et saisissez l'URL de service JMX : service:jmx:rest://<host>:<port>/IBMJMXConnectorREST. Le numéro de port est le port HTTPS. Vous devez également fournir le nom d'utilisateur et le mot de passe.
- Localisez le bean géré com.ibm.ws.jmx.mbeans.generatePluginConfig sous le domaine WebSphere.
- Appelez l'opération generateDefaultPluginConfig pour générer le fichier plugin-cfg.xml, ou appelez l'opération generatePluginConfig pour personnaliser le répertoire racine de l'installation et le nom du serveur avant de générer le fichier plugin-cfg.xml.
Le fichier plugin-cfg.xml est généré dans le répertoire ${server.output.dir}.<?xml version="1.0" encoding="UTF-8"?> <Config ASDisableNagle="false" AcceptAllContent="false" AppServerPortPreference="HostHeader" ChunkedResponse="false" FIPSEnable="false" IISDisableNagle="false" IISPluginPriority="High" IgnoreDNSFailures="false" RefreshInterval="60" ResponseChunkSize="64" SSLConsolidate="false" SSLPKCSDriver="REPLACE" SSLPKCSPassword="REPLACE" TrustedProxyEnable="false" VHostMatchingCompat="false"> <Log LogLevel="Error" Name=".\logs\defaultServer\http_plugin.log"/> <Property Name="ESIEnable" Value="true"/> <Property Name="ESIMaxCacheSize" Value="1024"/> <Property Name="ESIInvalidationMonitor" Value="false"/> <Property Name="ESIEnableToPassCookies" Value="false"/> <Property Name="PluginInstallRoot" Value="."/> <VirtualHostGroup Name="default_host"> <VirtualHost Name="*:80"/> <VirtualHost Name="*:443"/> <VirtualHost Name="*:9080"/> </VirtualHostGroup> <ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="defaultServer_default_node_Cluster" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60"> <Server CloneID="b564bdc7-2c27-4a4b-ad37-9213c66e60d1" ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="default_node_defaultServer0" ServerIOTimeout="900" WaitForContinue="false"> <Transport Hostname="somehost.example.com" Port="9080" Protocol="http"/> </Server> <PrimaryServers> <Server Name="default_node_defaultServer0"/> </PrimaryServers> </ServerCluster> <UriGroup Name="default_host_defaultServer_default_node_Cluster_URIs"> <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/myapp/*"/> <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*"/> </UriGroup> <Route ServerCluster="defaultServer_default_node_Cluster" UriGroup="default_host_defaultServer_default_node_Cluster_URIs" VirtualHostGroup="default_host"/> </Config>
Remarque :- Vous pouvez utiliser l'utilitaire jConsole avec le profil Liberty. Toutefois, tout problème lié à l'utilitaire doit être signalé à votre fournisseur de SDK Java.
- L'interface de gestion du bean géré WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig est com.ibm.websphere.webcontainer.GeneratePluginConfigMBean. Vous pouvez utiliser l'interface de gestion afin d'obtenir un objet proxy. Voir Exemples d'accès aux opérations et aux attributs de bean géré. Pour plus d'informations sur l'interface de gestion, voir le document de l'API Java pour le profil Liberty. La documentation d'API Java pour chaque API de profil Liberty est détaillée dans la section Interfaces de programmation (API) du centre de documentation et est également disponible dans un fichier .zip distinct dans l'un des sous-répertoires javadoc du répertoire ${wlp.install.dir}/dev.
- Avec le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une invite de commande.
- Copiez le fichier plugin-cfg.xml sur la machine hôte du
serveur Web.
Pour IBM i, procédez comme suit :
- Exécutez la commande Qshell manageprofiles pour créer un profil http. Par exemple, plugins_root/bin/manageprofiles -create -profileName http -templatePath http.
- Copiez le fichier plugin-cfg.xml dans le répertoire config du profil http créé lors de la sous-étape a, par exemple, plugin_profile_root/config/plugin-cfg.xml, et définissez les droits sur le fichier.
- Exécutez la commande suivante à partir d'une ligne de commande système pour modifier
les droits sur le fichier pour les paramètres requis :
CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)
Configurez votre serveur HTTP pour utiliser le fichier plugin-cfg.xml.
Recherchez l'emplacement de votre fichier plugin-cfg.xml en recherchant la valeur spécifiée pour la directive WebSpherePluginConfig à la fin du fichier de configuration du serveur HTTP. Par exemple, <IHS_ROOT>/conf/httpd.conf.
Activez le plug-in dans le fichier httpd.conf du serveur Web avec le terme LoadModule et spécifier l'emplacement du fichier plugin-cfg.xml avec le terme WebSpherePluginConfig. Exemple :- Sur les systèmes Windows :
LoadModule was_ap22_module "path/to/mod_was_ap22_http.dll" WebSpherePluginConfig "C:\Program Files\IBM\HTTPServer\conf\plugin-cfg.xml"
- Sur les autres systèmes répartis :
LoadModule was_ap22_module "path/to/mod_was_ap22_http.so" WebSpherePluginConfig "/opt/IBM/HTTPServer/conf/plugin-cfg.xml"
Pour IBM i, voir la rubrique relative à la configuration d'IBM HTTP Server géré par Apache 2.x pour des instructions sur l'activation du plug-in dans le fichier httpd.conf.
- Sur les systèmes Windows :
- Facultatif : Si vous voulez que le plug-in du serveur Web transfère les demandes HTTP
à plusieurs serveurs de profil Liberty, répétez les étapes
précédentes pour chaque serveur supplémentaire. Veillez à regrouper toutes les configurations
de plug-in dans un même fichier plugin-cfg.xml. Remarque :
- Si une application modifie à l'aide d'un programme la configuration du cookie de session en utilisant les API Java Servlet 3.0, elle doit être initialisée avant de générer le fichier plugin-cfg.xml. Sinon, l'attribut AffinityCookie défini pour cette application risque d'être incorrect. Pour éviter ce problème, vous pouvez associerdeferServletLoad à la valeur false, démarrer le serveur, générer le plug-in, puis supprimer l'attribut deferServletLoad.
- Vous pouvez vous servir de l'utilitaire pluginCfgMerge dans le profil complet pour fusionner plusieurs fichiers plugin-cfg.xml. Voir Configuration d'un équilibrage de charge simple sur plusieurs profils de serveurs d'applications.
- Si vous utilisez le gestionnaire de travaux pour fusionner plusieurs fichiers plugin-cfg.xml, voir Fusion de plug-ins pour les serveurs de profil Liberty à l'aide du gestionnaire de travaux.

Dispositions pour les centres de documentation | Commentaires

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_admin_webserver_plugin
Nom du fichier : twlp_admin_webserver_plugin.html