Datei "plugin-cfg.xml" mithilfe einer MBean generieren
Sie können die Datei plugin-cfg.xml für den Web-Server generieren, indem Sie die MBean WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig
aufrufen.
Vorbereitungen
Ab 16.0.0.3 müssen Sie die Datei plugin-cfg.xml nicht mehr generieren. Das Produkt generiert die Datei automatisch. Siehe Automatische Generierung der Datei plugin-cfg.xml.
Wenn eine Anwendung die Sitzungscookiekonfiguration mit Servlet 3.0-APIs programmgesteuert ändert,
muss die Anwendung initialisiert werden, bevor die Datei
plugin-cfg.xml generiert wird. Andernfalls kann das Attribut
AffinityCookie, das für die betreffende Anwendung definiert wird, falsch sein. Sie können dieses Problem vermeiden, indem Sie deferServletLoad auf falsesetzen, den Server starten, das Plug-in generieren und dann das Attribut deferServletLoad entfernen.
Informationen zu dieser Task
Ein Web-Server-Plug-in wird verwendet, um HTTP-Anforderungen von einem unterstützten Web-Server an einen oder mehrere Anwendungsserver weiterzuleiten. Das Plug-in prüft eine Anforderung anhand der in der Datei plugin-cfg.xml enthaltenen Konfigurationsdaten. In den Konfigurationsdaten ist der URI für die HTTP-Anforderung dem Hostnamen eines Anwendungsservers zugeordnet. Diese Informationen werden vom Web-Server-Plug-in verwendet, um die Anforderung an den Anwendungsserver weiterzuleiten.
Vorgehensweise
- Starten Sie den Server, der Ihre Anwendungen hostet, und stellen Sie sicher, dass das Feature
localConnector-1.0für IBM®i und z/OS® oder das FeaturerestConnector-2.0, wenn Sie ein Plug-in für IBM i oder z/OSkonfigurieren, und alle anderen erforderlichen Features in der Serverkonfiguration enthalten sind.Im Element
pluginConfigurationder Serverkonfigurationsdatei können Sie die Attribute webserverPort und webserverSecurePort angeben, damit Anforderungen aus dem Web-Server weitergeleitet werden. Standardmäßig hat das Attribut webserverPort den Wert 80 und das Attribut webserverSecurePort den Wert 443. Vielleicht möchten Sie diese Einstellungen aber ändern. Wenn Sie beispielsweise für Linux® und ähnliche Plattformen ein Benutzer ohne Rootberechtigung sind, müssen Sie Portnummern größer als 1024 verwenden.Informationen zu allen konfigurierbaren Attributen des Elements
pluginConfigurationfinden Sie unter Java Servlets 3.1.Nachfolgend ist ein Beispiel für eine Serverkonfigurationsdatei server.xml dargestellt:<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>Für IBM i und z/OSschließen Sie das Feature
restConnector-2.0anstelle des FeatureslocalConnector-1.0ein. Details finden Sie unter Sichere JMX-Verbindung zu Liberty konfigurieren.Das folgende Beispiel zeigt eine server.xml -Serverkonfigurationsdatei für IBM i und 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>Hinweis:- Wenn Sie das Web-Server-Plug-in für die Verwendung von SSL konfigurieren, müssen Sie das Feature
transportSecurity-1.0Liberty von Libertyaktivieren. - Wenn der Web-Server die Standardports verwendet, müssen Sie das Element
pluginConfigurationnicht in die Datei server.xml aufnehmen. - Der Keystore, der vom Web-Server-Plug-in verwendet wird, muss ein CMS-Keystore sein, der mit dem Dienstprogramm "Key Management" (iKeyman) erstellt werden kann. Sie können den von Liberty oder WebSphere Application Server Traditional erstellten JKS-Keystore nicht für das Web-Server-Plug-in verwenden, obwohl Sie Unterzeichnerzertifikate zwischen dem Keystore des Web-Server-Plug-ins und dem Liberty -Keystore austauschen müssen.
- Fügen Sie der Datei server.xml im Element
pluginConfigurationdas folgende Code-Snippet hinzu, um die Position der Plug-in-Protokolldatei zu konfigurieren:logDirLocation=/path/to/log/file/
- Wenn Sie das Web-Server-Plug-in für die Verwendung von SSL konfigurieren, müssen Sie das Feature
- Generieren Sie die Datei plugin-cfg.xml für Ihren Liberty -Server und Ihre Anwendungen, indem Sie die MBean
WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfigaufrufen.- Verwenden Sie dasselbe Java SDK wie auf dem Server und führen Sie das Java-Dienstprogramm jconsole in einem Befehlsfenster aus.Führen Sie beispielsweise den folgenden Befehl aus:
c:\java\bin\jconsoleDer Serverprozess wird in den Auswahlmöglichkeiten aufgelistet, die auf eine Verbindung warten.Führen Sie für IBM i und z/OSdas Java-Dienstprogramm 'jconsole' in einem Befehlsfenster aus, indem Sie das Java SDK verwenden, das mit WCT auf Ihrer Workstation installiert wurde. Führen Sie z. B. die folgenden Schritte aus:
- Erstellen Sie auf Ihrer Workstation das Verzeichnis C:\restClient.
- Kopieren Sie ${wlp.install.dir}/clients/restConnector.jar in das Verzeichnis C:\restClient auf Ihrer Workstation.
- Kopieren Sie ${server.output.dir}/resources/security/key.jks in das Verzeichnis C:\restClient auf Ihrer Workstation.
- Geben Sie in einem Befehlsfenster
SET JAVA_HOME=wct_root\java ein.Anmerkung: Stellen Sie sicher, dass Sie die Datei wct_root\java\jre\lib\security\java.security vorübergehend ändern, indem Sie die beiden Zeilen, die die SSL-Socket-Factorys auf die SSL-Socket-Factorys von WebSphere® Application Server setzen, auf Kommentar setzen. Diese Änderung ist im Abschnitt Fehlerbehebung für SSL des Abschnitts mit Tipps zur Fehlerbehebung dokumentiert.
- Führen Sie in demselben Befehlsfenster das Java-Dienstprogramm jconsole aus.Führen Sie beispielsweise den folgenden Befehl aus:
Eventuell müssen Sie auch den folgenden Parameter angeben:"%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
- Stellen Sie eine Verbindung zu Ihrem Server her und klicken Sie auf die Registerkarte MBeans .
Nachdem jConsole gestartet wurde, wählen Sie "Remote Process" aus und geben Sie den JMX-Dienst URL : service:jmx:rest://<host>:<port>/IBMJMXConnectorREST ein. Geben Sie als Portnummer die Nummer des HTTPS-Ports an. Sie müssen auch den Benutzernamen und das Kennwort angeben.
- Suchen Sie die MBean
com.ibm.ws.jmx.mbeans.generatePluginConfigin der Domäne WebSphere . - Rufen Sie die Operation
generateDefaultPluginConfigauf, um die Datei plugin-cfg.xml zu generieren, oder rufen Sie die OperationgeneratePluginConfigauf, um das Installationsstammverzeichnis und den Servernamen anzupassen, bevor Sie die Datei plugin-cfg.xml generieren.
Nachfolgend ist ein Beispiel der Datei plugin-cfg.xml dargestellt:<?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>Die Datei plugin-cfg.xml wird im Verzeichnis${server.output.dir}erstellt.Hinweis:- Sie können das Dienstprogramm jConsole mit Libertyverwenden. Alle Probleme mit dem Dienstprogramm selbst müssen jedoch an Ihren Java SDK-Provider gemeldet werden.
- Die Managementschnittstelle für die MBean
WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfigistcom.ibm.websphere.webcontainer.GeneratePluginConfigMBean.
- Verwenden Sie dasselbe Java SDK wie auf dem Server und führen Sie das Java-Dienstprogramm jconsole in einem Befehlsfenster aus.
- Kopieren Sie die Datei plugin-cfg.xml auf die Maschine, auf der sich der Web-Server befindet.
Führen Sie für IBM idie folgenden Schritte aus:
- Führen Sie den Qshell-Befehl manageprofiles aus, um ein HTTP-Profil zu erstellen. Zum Beispiel plugins_root/bin/manageprofiles -create -profileName http -templatePath http.
- Kopieren Sie die Datei plugin-cfg.xml in das Verzeichnis config des HTTP-Profils, das in Unterschritt a erstellt wurde, z. B. plugin_profile_root/config/plugin-cfg.xml, und definieren Sie die Dateiberechtigungen.
- Führen Sie in einer Systembefehlszeile den folgenden Befehl aus, um die Dateiberechtigungen in die erforderlichen Einstellungen zu ändern:
CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)