题
我有一个网上运行的应用程序港口:80,我有一个轴线上网服务的一部分,网络应用程序。因此,服务的运行于港口:80。
然而,出于安全原因,我们的客户已要求我们改变网服务端口8080,以便他们可以只允许访问,为远程端口消费者的网络服务。因此他们没有接到常规的网络应用程序,但有访问的服务。
这是可能做到的,没有重构应用程序,并采取了网络服务于一个单独的网络应用程序?
解决方案
正如我已经说过在我的评论,我们的网络应用程序托管在Oracle为10g用Oracle网页高速缓存服务器坐在前面的。Oracle网页高速缓存是基于Apache httpd,因此它具有虚拟的主机支助和URL改写的(虽然它不存在这些术语)。
我已经成功解决了问题:
- 配置网页高速缓存听口8080(virtual host)
- 改写的所有请求的形式 http://host:8080/service/*来 http://host/service/*,并放弃所有其他网址的模式。
它就像一个特色。
作为轴本身,我没有找到一种方式,配置这听上的另一个港口由本身。我猜这是不合理的期望从轴线提供这种功能,因为它仅仅是一个servlet举办一个小的容器,而它的容器的工作提供连接器/运输层。
无论如何...感谢所有人提供他们的帮助,我赞赏。
其他提示
简短的回答可能是-是的这是可能的。
轴web服务主要是足够脱离主要应用程序,它应该很容易得到他们运行在不同Java的网服务器的实例,将运行只有在港口8080的情况下,如果这是不可能的配置不管的网络服务器你在运行,还在港口8080和服务的网服务只有在该港口。
使用8080端口连接器,你应该能够什么设置一个单独的服务。
实际上,你会运行2“迷你”的实例内-Tomcats。
基本上,
<Service> <!-- normal service -->
<Connector port="80" />
</Service>
<Service> <!-- custom service -->
<Connector port="8080" />
<Engine>
<Host />
</Engine>
</Service>
它觉得这个解决方案可以提出一些调试的噩梦,如果它不工作,恰到好处,所以它可能是更容易运行第二个服务器(可能码头)。
不隶属于 StackOverflow