Search code examples
tomcatroutesportliferayfuse

How should I run Fuse ESB along side a Tomcat server?


An odd question here. I work as an intern prototyping SOA. Getting a virtual server is a big hassle, so my boss asked if I could run the Fuse ESB on the same server that I already have a Tomcat server running on. (It's running Liferay CMS). I said sure, I don't think that Fuse uses any of the same ports, so it shouldn't be a problem right?

Turns out, it's also a big hassle getting ports other than 80, 8080, 443, and 8443 open on this server. And the Fuse web console runs on 8181.

So my question is this. How can I get traffic to a specific url on tomcat to route locally to the Fuse ESB web console? For example, lets say Liferay is at https://X.X.X.X/home/guest or something. How can I make traffic to https://X.X.X.X/fuse/console show the Fuse ESB web console on 8181?

The routing needs to happen locally because if the traffic goes back outside of the firewall, it won't be let back in again on 8181. Traffic only gets in on 80, 8080, 443, and 8443. It also gets in on 22 if its from my workstation. I have no control over any of this.

Usually I can get answers by googling things, but in this case I haven't found anything useful. I think the cause of this is that I don't quite know the terminology I need. Also, this is probably the most convoluted way of doing this, but since I'm an intern, I really have no pull.

I appreciate any pointers in the right direction. Please excuse my ignorance, I'm teaching myself this stuff.

Thanks,

Griff


Solution

  • My recommendation: Have a decent webserver in the frontend (e.g. Apache) and have that one delegate the requests to the backend. This scenario would have Apache listening on port 80 and 443, and uses for example mod_jk, mod_proxy or mod_proxy_ajp to delegate to the backend servers based on the URL.

    mod_proxy would delegate through http, the others through ajp, a protocol designed for the forwarding of information. You can probably get more accurate information on these topics by looking up the modules' docs on the web.

    The resulting connections will be issued by Apache, so you're already behind your firewall - there should be no more problems with the firewall for these connections. With ajp tomcat will get all information in the same way it would get it if it accepted the connection itself in the first place