Nginx
在 Wildfly 上執行多個網站域
假設我有許多具有不同域名的網站
domain1.com
,domain2.com
, 等。我已經在 Wildfly 中為這些網站設置了正確的虛擬主機配置。正確的 DNS 條目也已到位。如何將這些域的請求路由到我的伺服器以進行 Wildfly?
- 我只是在埠 80 和 443 上執行 wildfly 嗎?有人告訴我這是一個壞主意,因為預設情況下,wildfly 不會在這些埠上執行。要在這些埠上執行 wildfly,需要以特權使用者身份綁定到這些埠,然後切換到非特權使用者。這樣做的麻煩和困難表明這是不對的。
- 我在 nginx 或 apache2 後面執行 wildfly 嗎?我的應用程序動態啟動網站和虛擬主機配置。我可以將所有請求轉發給wildfly並讓它處理嗎?
- ???
選項 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 網站上找到更多資訊