在 Wildfly 上运行多个网站域名

在 Wildfly 上运行多个网站域名

假设我有许多网站,域名不同,,domain1.comdomain2.com。我在 wildfly 中为这些网站设置了正确的虚拟主机配置。正确的 DNS 条目也已到位。如何将这些域名的请求路由到 wildfly 的服务器?

  1. 我是否只需在端口 80 和 443 上运行 wildfly?有种感觉告诉我这不是一个好主意,因为默认情况下 wildfly 不会在这些端口上运行。要在这些端口上运行 wildfly,需要以特权用户身份绑定到这些端口,然后切换到非特权用户。这样做的麻烦和困难表明这是不对的。

  2. 我是否应该在 nginx 或 apache2 后面运行 wildfly?我的应用程序动态启动网站和虚拟主机配置。我可以将所有请求转发给 wildfly 并让它处理吗?

  3. ???

答案1

选项 1 是可行的,但正如您正确预测的那样,这不是首选方法。为了在端口 80 或 443 上运行,您需要一个特权用户,并且您直接将 Java 服务器公开给公众,这更容易陷入麻烦。
因此,启动 nginx,在那里定义域并配置upstream反向proxy_pass代理到您的 wildfly 实例。您可以免费获得负载平衡,您可以在 nginx 而不是 wildfly 上处理 ssl,整个设置更容易维护和扩展。您可以为每个域设置专用的 wildfly 集群并进行单独的upstream定义,或者您可以从具有单独 webcontexts 的单个实例开始,例如

upstream jboss {
    server 192.168.33.11:8080;
}
server {
    listen 443;
    server_name example.com;

    location / {
         proxy_pass http://jboss/webapp1;
    }
} 
server {
    listen 443;
    server_name otherdomain.com;
    #pass the request to another .war dewployed on jboss
    location / {
         proxy_pass http://jboss/webapp2;
    }
} 

您可以找到更多信息nginx 网站

相关内容