我有一个Jboss 7服务器设置并运行Web应用程序和Java Web Start应用程序。两者都很好。这是我的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客户端使用端口4447连接到服务器上部署的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生产服务器?
答案 0 :(得分:1)
不,一次只有一个进程可以绑定到端口。如果你的应用程序http绑定到80,那么远程处理需要使用一些其他打开的端口。
答案 1 :(得分:1)
基本上我想确保我的所有客户都可以连接到 系统
请注意,您在这里谈论的是远程端口,您的网络服务器端口,因此它可以为所有人或任何人开放。在生产服务器中打开端口后,客户端可以在远程端连接到哪些端口通常没有太多限制。例如,某些Web代理只允许您连接到80(标准http端口),443(ssl端口)和8080(某些服务的http端口),但除此之外,所有端口应该同样好,并且无关紧要你选择哪一个。如果要避免通常为其他内容保留的端口,可以检查list of ports。
因此,对于通常的情况,4447应该没问题。对于某些人来说,如果他们落后于严格的代理/防火墙,它将无法工作。 (你有可能在端口80上为你的jboss远程控制器提供一个专用主机名,但是在那个主机名中你不能运行任何常规的http服务器,为此使用标准的http端口是很可疑的。)可靠的选择是重写你的应用程序以使用http REST接口或类似程序,连接到端口80,并在那里有一个可以执行EJB调用的Web应用程序,因此不会暴露EJB层。
另请注意,远程处理界面已its share of exploits。你想要check carefully there are no open exploits for JBoss in there。 但是,我至少还没有发现针对AS7的攻击。</ del>存在可能适用于AS7的at least two。
如果您使用远程处理,您可能还希望配置安全域。