ドメイン名が異なるウェブサイトがたくさんあるとしましょう。domain1.com
、domain2.com
など。wildflyでこれらのサイトの正しいvirtualhosts構成をセットアップしました。正しいDNSエントリも用意されています。これらのドメインのリクエストをサーバーにルーティングしてwildflyに送信するにはどうすればよいですか?
ポート80と443で単にwildflyを実行しますか?デフォルトではwildflyはこれらのポートで実行されないため、これは悪い考えだと言われています。これらのポートでwildflyを実行するには、特権ユーザーとしてこれらのポートにバインドしてから、非特権ユーザーに切り替える必要があります。これを行うことの面倒と難しさは、これが正しくないことを示唆しています。
NginxまたはApache2の背後でwildflyを実行しますか?私のアプリはウェブサイトと仮想ホストの設定を動的に起動します。すべてのリクエストをwildflyに転送して、処理させることはできますか?
???
オプション1は可能ですが、正しく予測したように、これは推奨されるアプローチではありません。ポート80または443で実行するには、特権ユーザーが必要であり、Javaサーバーを公開しているため、トラブルが発生しやすくなっています。
nginxを起動し、そこでドメインを定義して、wildflyインスタンスへのリバースプロキシ用にupstream
とproxy_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ウェブサイト でより多くの情報を見つけることができます