Maciej Treder
Maciej Treder

Reputation: 12342

How to manage many URLs / domains

I would like to get following situation:

I have domains: xxx.com zzz.com and yyy.com I have one server: xxx.yyy.zz.qq

I would like to configure glassfish to start listening on port 80, and basing on the URL choose proper base catalog for my sites i.e.:

Scenario 1: Visitor is entering url xxx.com or www.xxx.com -> Glassfish receive request on port 80 and pick up catalog: ./glassfish4/myXXXcom/ where index.html for xxx.com is placed.

Scenario 2: Visitor is entering url zzz.com or www.zzz.com -> Glassfish receive request on port 80 and pick up catalog: ./glassfish4/anotherSite/ where index.html for zzz.com is placed.

What have I done:

Installed glassfish 4.1 on my server. Changed A field of my domains to my server address. Created virtual server:

glassfish4/bin/asadmin/create-virtual-server --hosts xxx.com xxx

Created http listener:

glassfish4/bin/asadmin create-http-listener --listeneraddress xxx.com --listenerport 80 --default-virtual-server xxx xxx

I think that I am doing something completely wrong here. How do I fix this problem?

Upvotes: 0

Views: 481

Answers (1)

Kenshin
Kenshin

Reputation: 1030

If I understand correctly, what you need to do is, create two domains in glassfish or create a cluster and assign two instances of local glassfish instances. One running in port 28080 and another domain in 28081 and use nginx as the load balancer to forward the request to appropriate ports when requests comes from different domains. To make it clear, I am writing step by step

  • Create a new cluster in glassfish admin console
  • Create and assign a new local glassfish instance to cluster. This instance will be running in port 28080 and handles requests coming from example1.com
  • Create another glassfish domain 28081 as the port no for handling example2.com
  • Install nginx, this acts as proxy and forward request to appropriate domains. Nginx will be running in port 80.
  • Start the cluster
  • Configure nginx as below. This is the crucial part

    server {
    listen       80;
    server_name  example1.com;
    
    location / {
        proxy_pass http://127.0.0.1:28080;
    }
    }
    
    server {
    listen       80;
    server_name  example2.com;
    
    location / {
        proxy_pass http://127.0.0.1:28081;
    }
    }
    
  • Start nginx

I hope you are familiar with creating clusters and domains in glassfish. If you are unfamiliar with creating clusters in commandline. Glassfish admin console is there, where you can achieve everything. If you need more info, please feel free to write in comments.

Upvotes: 1

Related Questions