0

我想得到以下情况:

我有域:xxx.com zzz.com 和 yyy.com 我有一台服务器:xxx.yyy.zz.qq

我想将 glassfish 配置为开始侦听端口 80,并根据 URL 为我的站点选择适当的基本目录,即:

场景 1:访问者输入 url xxx.com 或 www.xxx.com -> Glassfish 在端口 80 上接收请求并获取目录:./glassfish4/myXXXcom/,其中放置了 xxx.com 的 index.html。

场景 2:访问者正在输入 url zzz.com 或 www.zzz.com -> Glassfish 在端口 80 上接收请求并获取目录:./glassfish4/anotherSite/,其中放置了 zzz.com 的 index.html。

我做了什么:

在我的服务器上安装了 glassfish 4.1。将我的域的 A 字段更改为我的服务器地址。创建的虚拟服务器:

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

创建http监听器:

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

我认为我在这里做的事情完全错误。我该如何解决这个问题?

4

1 回答 1

1

如果我理解正确,您需要做的是在 glassfish 中创建两个域或创建一个集群并分配两个本地 glassfish 实例。一个在 28080 端口运行,另一个在 28081 域运行,当请求来自不同域时,使用 nginx 作为负载均衡器将请求转发到适当的端口。为了清楚起见,我正在一步一步地写

  • 在 glassfish 管理控制台中创建一个新集群
  • 创建一个新的本地 glassfish 实例并将其分配给集群。此实例将在端口 28080 中运行并处理来自 example1.com 的请求
  • 创建另一个 glassfish 域 28081 作为处理 example2.com 的端口号
  • 安装 nginx,这充当代理并将请求转发到适当的域。Nginx 将在 80 端口运行。
  • 启动集群
  • 如下配置nginx。这是关键部分

    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;
    }
    }
    
  • 启动 nginx

我希望您熟悉在 glassfish 中创建集群和域。如果您不熟悉在命令行中创建集群。Glassfish 管理控制台在那里,您可以在其中实现一切。如果您需要更多信息,请随时在评论中写下。

于 2016-08-22T07:12:24.280 回答