Génération du fichier plugin-cfg.xml à l'aide d'un bean géré
Vous pouvez générer le fichier plugin-cfg.xml pour le serveur Web en appelant le bean géré WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig.
Avant de commencer
A partir de la version 16.0.0.3, vous n'avez plus besoin de générer le fichier plugin-cfg.xml. Le produit génère le fichier à votre place. Voir Génération automatique du fichier plugin-cfg.xml.
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 définir deferServletLoad sur false, démarrer le serveur, générer le plug-in, puis supprimer l'attribut deferServletLoad .
A propos de 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
- Démarrez le serveur qui héberge vos applications et vérifiez que la fonction
localConnector-1.0pour les plateformes IBM®i et z/OS® ou la fonctionrestConnector-2.0si vous configurez un plug-in pour IBM i ou z/OS, ainsi que toutes les autres fonctions requises, sont incluses dans la configuration du serveur.Dans l'élément
pluginConfigurationdu fichier de configuration du serveur, vous pouvez spécifier les attributs webserverPort et webserverSecurePort pour transmettre les demandes à partir du serveur Web. 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 Linux® et les plateformes similaires, si vous êtes un utilisateur non root, vous devez utiliser des numéros de port supérieurs à 1024.Pour tous les attributs configurables de l'élément
pluginConfiguration, voir Java Servlets 3.1.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 et z/OS, incluez la fonction
restConnector-2.0à la place de la fonctionlocalConnector-1.0. Pour plus de détails, voir Configuration d'une connexion JMX sécurisée à Liberty.Voici un exemple de fichier de configuration de serveur server.xml pour IBM i et z/OS:
<server description="new server"> <!-- Enable features --> <featureManager> <feature>jsp-2.2</feature> <feature>restConnector-2.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 pour utiliser SSL, vous devez activer la fonction
transportSecurity-1.0Liberty de Liberty. - Si le serveur Web utilise les ports par défaut, il n'est pas nécessaire d'inclure l'élément
pluginConfigurationdans le fichier server.xml. - Le magasin de clés qui est utilisé par le plug-in de serveur Web doit être un magasin de clés CMS qui peut être créé à l'aide de l'utilitaire Key Management (iKeyman). Vous ne pouvez pas utiliser le magasin de clés JKS créé par Liberty ou Traditional pour le plug-in de serveur Web, mais vous devez échanger des certificats de signataire entre le magasin de clés du plug-in de serveur Web et le magasin de clés Liberty .
- Pour configurer l'emplacement du fichier journal du plug-in, ajoutez le fragment de code suivant au fichier server.xml
dans l'élément
pluginConfiguration:logDirLocation=/path/to/log/file/
- Si vous configurez le plug-in de serveur Web pour utiliser SSL, vous devez activer la fonction
- Générez le fichier plugin-cfg.xml pour votre serveur et vos applications Liberty en appelant le bean géré
WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig.- En utilisant le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une fenêtre de commande.Par exemple, exécutez la commande suivante :
c:\java\bin\jconsoleLe processus du serveur est répertorié dans les choix en attente de connexion.Pour IBM i et z/OS, exécutez l'utilitaire Java jconsole à partir d'une fenêtre de commande à l'aide du SDK Java installé avec le WCT sur votre poste de travail. Par exemple, procédez comme suit :
- 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: veillez à modifier temporairement wct_root\java\jre\lib\security\java.security en mettant en commentaire les deux lignes qui définissent les fabriques de sockets SSL sur les fabriques de sockets SSL WebSphere® Application Server . Cette modification est documentée dans la section Identification et résolution des problèmes SSL de la rubrique relative aux conseils d'identification et de résolution des problèmes.
- Dans la même fenêtre de commande, exécutez l'utilitaire Java jconsole .Par exemple, exécutez la commande suivante :
Vous devrez peut-être é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 .
Après le démarrage de jConsole, sélectionnez Remote Process, et entrez le service JMX URL : 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 MBean
com.ibm.ws.jmx.mbeans.generatePluginConfigsous le domaine WebSphere . - Appelez l'opération
generateDefaultPluginConfigpour générer le fichier plugin-cfg.xml ou appelez l'opérationgeneratePluginConfigpour personnaliser le répertoire racine d'installation et le nom du serveur avant de générer le fichier plugin-cfg.xml .
Voici un exemple de fichier plugin-cfg.xml :<?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>Le fichier plugin-cfg.xml est généré dans le répertoire${server.output.dir}.Remarque :- Vous pouvez utiliser l'utilitaire jConsole avec Liberty. Toutefois, tout problème lié à l'utilitaire lui-même doit être signalé à votre fournisseur de SDK Java.
- L'interface de gestion du bean géré
WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfigestcom.ibm.websphere.webcontainer.GeneratePluginConfigMBean.
- En utilisant le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une fenêtre de commande.
- Copiez le fichier plugin-cfg.xml sur la machine qui héberge le 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)