WebSphere AppServer Liberty:如何防止将系统应用程序发布到插件-cfg.xml

WebSphere AppServer Liberty: How to prevent from publishing system applications to plugin-cfg.xml

配置管理中心后,${server.config.dir}/logs/state/plugin-cfg.xml 文件包含系统应用程序的 uri 路由规则。我不想通过 HTTP 服务器发布管理中心,并希望将其保留在私有访问中。

<UriGroup Name="default_host_neon1_default_node_Cluster_URIs">
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/Sample/*"/>
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/IBMJMXConnectorREST/*"/>
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm/api/*"/>
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm/adminCenter/explore-1.0/*"/>
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm/adminCenter/serverConfig-1.0/*"/>
  <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/adminCenter/*"/>
</UriGroup>

我找不到任何设置来从 plugin-cfg.xml 中删除 url(例如 server.xml 中的 )。如何从 plugin-cfg.xml 文件中删除这些路由规则?我可以手动编辑文件吗?

有一种非手动的方法可以做到这一点。您需要将管理中心绑定到不同的端口。无论如何,这是一件好事,因为它只是在应用程序和管理流量之间增加了更多的分离。为此,您需要定义两个 http 端点:

<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" />
<httpEndpoint id="appHttpEndpoint" host="*" httpPort="9081" />

然后为应用程序定义一个虚拟主机(如果需要,您也可以将虚拟主机绑定到特定端点):

<virtualHost id="app_host">
   <hostAlias>your_host_name:9081</hostAlias>
</virtualHost>

您还需要使默认主机仅绑定到一个端口。

<virtualHost id="default_host">
   <hostAlias>your_host_name:9080</hostAlias>
</virtualHost>

然后将 webApplication 绑定到应用程序主机:

还有最后一件事,您需要将插件配置为使用 appHttpEndpoint 而不是 defaultHttpEndpoint:

<pluginConfiguration httpEndpointRef="appHttpEndpoint"/>

pluginConfiguration 上 httpEndpointRef 的默认值是 defaultHttpEndpoint,因此如果您愿意,可以使用 defaultHttpEndpoint 进行应用程序配置,并将管理流量也移动到不同的端点。

有用的知识中心参考资料是: