web-dev-qa-db-ja.com

Wildflyで複数のWebサイトドメインを実行する

ドメイン名が異なるウェブサイトがたくさんあるとしましょう。domain1.comdomain2.comなど。wildflyでこれらのサイトの正しいvirtualhosts構成をセットアップしました。正しいDNSエントリも用意されています。これらのドメインのリクエストをサーバーにルーティングしてwildflyに送信するにはどうすればよいですか?

  1. ポート80と443で単にwildflyを実行しますか?デフォルトではwildflyはこれらのポートで実行されないため、これは悪い考えだと言われています。これらのポートでwildflyを実行するには、特権ユーザーとしてこれらのポートにバインドしてから、非特権ユーザーに切り替える必要があります。これを行うことの面倒と難しさは、これが正しくないことを示唆しています。

  2. NginxまたはApache2の背後でwildflyを実行しますか?私のアプリはウェブサイトと仮想ホストの設定を動的に起動します。すべてのリクエストをwildflyに転送して、処理させることはできますか?

  3. ???

2
deadghost

オプション1は可能ですが、正しく予測したように、これは推奨されるアプローチではありません。ポート80または443で実行するには、特権ユーザーが必要であり、Javaサーバーを公開しているため、トラブルが発生しやすくなっています。
nginxを起動し、そこでドメインを定義して、wildflyインスタンスへのリバースプロキシ用にupstreamproxy_passを設定します。ロードバランシングは無料で利用でき、wildflyの代わりにnginxで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ウェブサイト でより多くの情報を見つけることができます

1
yntelectual