如何管理多个 URL/域

How to manage many URLs / domains

我想得到以下情况:

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

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

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

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

我做了什么:

在我的服务器上安装了 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

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

如果我没理解错的话,你需要做的是,在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 管理控制台在那里,您可以在那里实现一切。如果您需要更多信息,请随时在评论中写下。