1

我有一个 Jboss 7 服务器设置并运行一个 Web 应用程序和一个 Java Web 启动应用程序。两者都工作正常。这是我的standalone.xml 的快照,它提供了正在使用的各种端口的信息。

 <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
        <socket-binding name="ajp" port="8009"/>
        <socket-binding name="http" port="80"/>
        <socket-binding name="https" port="443"/>
        <socket-binding name="osgi-http" interface="management" port="8090"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>

我想在这里了解更多关于如何设置 Jboss 生产服务器的信息。通常端口 80 在所有系统上对 http 流量都是开放的,因此 Web 应用程序没有问题。

但是,我的 java 客户端使用远程 ejb 接口连接到部署在服务器上的 java web start 应用程序,该接口使用端口 4447,这是 Jboss 服务器的默认远程处理端口。此端口可能未对所有系统上的流量开放。

所以我的问题是:How do you make this remoting interface listen to a port which will hopefully be available on all systems across all networks ?如果我把它改成 80,我的应用程序还能正常工作吗?我不想尝试尝试并打破一切:D

任何有设置 Jboss 生产服务器经验的人?

4

2 回答 2

1

不,一次只有一个进程可以绑定到一个端口。如果您的应用程序 http 绑定到 80,那么远程处理需要使用其他一些打开的端口。

于 2013-10-08T02:56:05.423 回答
1

基本上我想确保我所有的客户都可以连接到系统

请注意,您在这里谈论的是远程端口,即您的 Web 服务器端口,因此它要么对所有人开放,要么对所有人开放。在生产服务器中打开端口后,通常对客户端可以在远程端连接的端口没有太多限制。例如,一些网络代理只允许您连接到 80(标准 http 端口)、443(ssl 端口)和 8080(某些服务的 http 端口),但除此之外,所有端口都应该一样好,没关系那你选择哪一个。如果您想避免使用通常为其他用途保留的端口,您可以查看端口列表。

因此,对于通常情况,4447 应该没问题。对于某些人来说,如果他们在严格的代理/防火墙后面,它就行不通。(你有可能在端口 80 上为你的 jboss 远程处理有一个专用的主机名,但是在那个主机名中你不能运行任何常规的 http 服务器,并且为此使用标准的 http 端口是可疑的。)可靠的选择是重写您的应用程序以使用 http REST 接口或类似接口,连接到端口 80,并在那里有一个可以执行 EJB 调用的 Web 应用程序,因此不会暴露 EJB 层。

另请注意,远程接口也有其利用的份额。你要仔细检查那里没有针对 JBoss 的公开漏洞但是,至少我还不知道针对 AS7 的攻击。至少有 两个可能也适用于 AS7。

如果您使用远程处理,您可能还希望配置一个安全领域。

于 2013-10-08T05:44:28.700 回答