Objective
Setup multiple host on several domains using a single IP address. (ie What is and how works a virtual host / custom domain / vanity hostnames)
Requirements
This is a very basic example, it does not take into account using shared applications or event the use of .war or .ear files. This is left as an exercise for the reader.
- Example Domains: gerardnico.com,
- Example IP Address: 127.0.0.1
Steps
Create directories under OC4J_HOME\applications\ for each domain.
mkdir $OC4J_HOME\applications\gerardnico
Add to the directory a index.html file.
Contents of OC4J_HOME\applications\gerardnico\index.html:
<html><head><title>gerardnico.com</title></head>
<body bgcolor="#FFFFFF">
<h2>gerardnico.com</h2>
</body>
</html>
Create WEB-INF directories for the domains.
mkdir $OC4J_HOME\applications\gerardnico\WEB-INF
Each WEB-INF directory should contain a web.xml file.
Contents of OC4J_HOME\applications\gerardnico\WEB-INF\web.xml
<web-app>
<display-name>gerardnico.com</display-name>
<description>
gerardnico.com
</description>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Create web-site XML file for each domain.
Contents of OC4J_HOME\config\gerardnico-web-site.xml:
<web-site host="127.0.0.1" port="80" display-name="gerardnico" virtual-hosts="gerardnico.com">
<!-- The default web-app for this site, bound to the root -->
<default-web-app application="default" name="gerardnico" />
<access-log path="../log/gerardnico-web-access.log" />
</web-site>
Edit OC4J_HOME\config\application.xml. Add the following lines:
<web-module id="gerardnico" path="../../home/applications/gerardnico" />
Edit OC4J_HOME\config\server.xml. Add the following lines:
<web-site path="./gerardnico-web-site.xml" />
Restart OC4J and test.