Nginx

在 Wildfly 上執行多個網站域

  • June 6, 2017

假設我有許多具有不同域名的網站domain1.comdomain2.com, 等。我已經在 Wildfly 中為這些網站設置了正確的虛擬主機配置。正確的 DNS 條目也已到位。如何將這些域的請求路由到我的伺服器以進行 Wildfly?

  1. 我只是在埠 80 和 443 上執行 wildfly 嗎?有人告訴我這是一個壞主意,因為預設情況下,wildfly 不會在這些埠上執行。要在這些埠上執行 wildfly,需要以特權使用者身份綁定到這些埠,然後切換到非特權使用者。這樣做的麻煩和困難表明這是不對的。
  2. 我在 nginx 或 apache2 後面執行 wildfly 嗎?我的應用程序動態啟動網站和虛擬主機配置。我可以將所有請求轉發給wildfly並讓它處理嗎?
  3. ???

選項 1 是可能的,但正如您正確預測的那樣,它不是首選方法。為了在埠 80 或 443 上執行,您需要一個特權使用者,並且您將 java 伺服器直接暴露給公眾,從而更容易陷入困境。

因此,啟動 nginx,在那裡定義域並配置upstream反向proxy_pass代理到您的 Wildfly 實例。您可以免費獲得負載平衡,您可以在 nginx 而不是 wildfly 上處理 ssl,並且整個設置更易於維護和擴展。您可以為每個域設置專用的 Wildfly 集群並具有單獨的upstream定義,或者您可以從具有單獨 Web 上下文的單個實例開始,例如

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 網站上找到更多資訊

引用自:https://serverfault.com/questions/804246