You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

This article shows how to configure Virtual Hosts in Apache Geronimo with Tomcat. By default, when you deploy and start an application in Geronimo, that application will be listeting on every available host name. By configuring a virtual host you can make an application to listen on a specific host name or IP. The configuration steps described in this article are also valid then you are sharing a single IP among several host names.

To configure a virtal host is Geronimo you basically need to:

This article used the simple HelloWorld application as a reference, this application is covered in the Quick start - Apache Geronimo for the impatient section.

Configure local host or DNS

To make this configuration work you need to ensure that Geronimo can resolve the virtual host name you are about to define. Depending on your network configuration you can add an entry to you DNS, an alias to the Geronimo server IP. Alternatively you can add an entry to the local host table, each operating system has it's own way to define a local host table. For example Windows will have %SystemRoot%\system32\drivers\etc\hosts, Unix based operating systems would normally have an /etc/hosts.

For this example we will be using the following host names defines in the local host table:

127.0.0.1 localhost virtualhost1.com virtualhost2.com virtualhost3.com virtualhost4.com

Make sure your system can resolve these names.

Define Virtual host

Now you need to define those virtual hosts in Geronimo's config.xml so it can recognize them. This section provides two different virtual hosts definitions (TomcatVirtualHost1 and TomcatVirtualHost2) in the Geronimo configuration, in other words we will be defining two different virtual hosts, one of those will have multiple aliases. The goal of this example is to have standard predeployed applications listening by default on all the available host names. Then to have an application listening on a single virtual host ( this will be virtualhost1.com ) and another application listening on a different virtual host ( this will be virtualhost2.com ) with two additional aliases ( this will be virtualhost3.com and virtualhost4.com )

Open the config.xml file located in the <geronimo_home>/var directory and look for the following line <module name="geronimo/tomcat/1.1/car">. This is the beginning of the Tomcat configuration module, all the additional virtual host configuration will be done immediatly after this line.

Excerpt from config.xml
...
<module name="geronimo/tomcat/1.1/car">
<gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=Host,name=TomcatVirtualHost1">
<attribute name="className">org.apache.catalina.core.StandardHost</attribute>
<attribute name="initParams">name=host1.com
       appBase=
       workDir=work</attribute>
</gbean>
...

Declare the virtual host in the deployment plan

geronimo-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
	<environment>
		<moduleId>
			<groupId>sample.applications</groupId>
			<artifactId>HelloWorldApp</artifactId>
			<version>1.1</version>
		</moduleId>		
	</environment>
  	<context-root>/hello</context-root>
	<host>host1.com</host>
</web-app>

Deploy the application

  • No labels