WildFly 上下文转发
WildFly context forwarding
WildFly 的默认安装仅指定了根上下文 - 用于欢迎页面
<subsystem xmlns="urn:jboss:domain:undertow:1.2" instance-id="main">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
我在 /webapp 上有可用的 Web 应用程序,我希望它可以从 root 访问。
我同意转发,所以目前我已将其设置为欢迎内容。
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/webapp/"/>
我不同意将 Web 应用程序从其上下文中移出(例如直接移至根目录)。另外我想避免像现在这样通过文件系统引用应用程序。
应该可以替换默认文件处理程序以进行直接转发。有 ~url 处理程序吗?也许可以在位置或其他地方指定相对地址?我很难找到这些东西的参考文档。
编辑:发布后您会看到令人不安的内容
1.If 您有 EAR,您只需在 application.xml.
中将 Web 模块的上下文根设置为“/”
<module>
<web>
<web-uri>webapp.war</web-uri>
<context-root>/</context-root>
</web>
</module>
2.If 你有 WAR,你需要在 web.xml 旁边添加 jboss-web.xml 内容:
<jboss-web>
<context-root>/</context-root>
</jboss-web>
(EDIT)3.You 可以为 default-host
设置 default-web-module 属性
<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<server name="default-server" default-host="webapp">
<host name="default-host" alias="localhost" default-web-module="webapp.war">
</host>
</server>
</subsystem>
如果您想保留上下文,我知道有两种方法。您可以部署仅包含一个转发页面的 ROOT.war
。它不必被称为 ROOT.war
,但这是 /subsystem=undertow/server=default-server/host=default-host
的默认值。您可以将 default-web-module
属性更改为任何内容。
另一个可能错误但有效的选项是更改 $JBOSS_HOME/welcome-content/index.html
页面。第一种方法可能更安全,因为它应该使升级更容易。
WildFly 的默认安装仅指定了根上下文 - 用于欢迎页面
<subsystem xmlns="urn:jboss:domain:undertow:1.2" instance-id="main">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
我在 /webapp 上有可用的 Web 应用程序,我希望它可以从 root 访问。
我同意转发,所以目前我已将其设置为欢迎内容。
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/webapp/"/>
我不同意将 Web 应用程序从其上下文中移出(例如直接移至根目录)。另外我想避免像现在这样通过文件系统引用应用程序。
应该可以替换默认文件处理程序以进行直接转发。有 ~url 处理程序吗?也许可以在位置或其他地方指定相对地址?我很难找到这些东西的参考文档。
编辑:发布后您会看到令人不安的内容
1.If 您有 EAR,您只需在 application.xml.
中将 Web 模块的上下文根设置为“/”<module>
<web>
<web-uri>webapp.war</web-uri>
<context-root>/</context-root>
</web>
</module>
2.If 你有 WAR,你需要在 web.xml 旁边添加 jboss-web.xml 内容:
<jboss-web>
<context-root>/</context-root>
</jboss-web>
(EDIT)3.You 可以为 default-host
设置 default-web-module 属性<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<server name="default-server" default-host="webapp">
<host name="default-host" alias="localhost" default-web-module="webapp.war">
</host>
</server>
</subsystem>
如果您想保留上下文,我知道有两种方法。您可以部署仅包含一个转发页面的 ROOT.war
。它不必被称为 ROOT.war
,但这是 /subsystem=undertow/server=default-server/host=default-host
的默认值。您可以将 default-web-module
属性更改为任何内容。
另一个可能错误但有效的选项是更改 $JBOSS_HOME/welcome-content/index.html
页面。第一种方法可能更安全,因为它应该使升级更容易。