I'm working on my first Java site. I'm running Apache Tomcat on port 8080, and Apache HTTPD on port 80. The current URL that I can access the site at is (for example) 123.4.5.6:8080. I want to remove the port number from the URL before I point the domain at the new IP.
At the moment I am only using Apache for phpmyadmin, however I plan on using it for CGI scripts and other stuff once I figure out
mod_jk
etc... So I don't want to change Tomcat's port to 80 and turn off Apache.
I hope this makes sense.
The correct way to do things is to leave Apache at 80 and Tomcat at 8080 and use a plug in (preferably mod_proxy) to proxy Tomcat from Apache. mod_proxy would only take you 10 minutes to set up.
This how-to is very simple to follow.
I'd recommend this too - best not have your JVM running as root unless you've got some other way of allowing it to bind to port 80.
| |
mod_jk allows you to not run as root and still use port 80 to serve requests through Apache. – Mike
| |
@kgiannakakis: do you prefer this over mod_jk?
| |
mod_proxy is a newer module and is considered to be better than mod_jk. It is only supported from Apache's version 2.2 onwards. I personally have only used mod_proxy.
|
The usual way this is done, as you already mentioned, is to use
mod_jk
from Apache HTTPD to forward that content that you want to be processed by Tomcat.
There is a Quick HowTo at tomcat.apache.org. You need to do the following:
- Copy
mod_jk.so
into the appropriate modules directory for Apache HTTPD. - Create a configuration file
workers.properties
- In Apache HTTPD's
httpd.conf
, add a section to configuremod_jk
. - Ensure that Tomcat is configured to accept the
mod_jk
protocol, which is usually on port 8009.
The lines in
httpd.conf
with JkMount
:JkMount /examples/* worker1
tell Apache HTTPD which requests are to be forwarded to Tomcat.
Both the helpful answers above are good, but I much prefer mod_proxy over mod_jk. There's no extra installation to do for mod_proxy, unlike mod_jk, and the setup is much easier. mod_jk gives you more control over detailed tuning of Tomcat parameters, but if you just want a simple redirect from Apache to Tomcat, mod_proxy is the way to go.
If you want static content to be served by Apache instead of Tomcat you should use mod_jk :http://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html
And what about SSL - if we want Apache to handle HTTPS, because it is faster then java/Tomcat?
No comments:
Post a Comment