4.2. ソケットバインディング
ソケットバインディングとソケットバインディンググループを使用することにより、ネットワークポートと、JBoss EAP の設定で必要なネットワーキングインターフェイスとの関係を定義できます。ソケットバインディングはソケットの名前付き設定です。ソケットバインディンググループは、ある論理名でグループ化されたソケットバインディング宣言のコレクションです。
これにより、使用ごとにソケット設定の完全な詳細を必要とせずに、設定の他のセクションが論理名でソケットバインディングを参照できるようになります。
これらの名前付き設定の宣言は standalone.xml
および domain.xml
設定ファイルにあります。スタンドアロンサーバーにはソケットバインディンググループが 1 つのみ含まれますが、マネージドドメインには複数のグループを含むことができます。マネージドドメインで各サーバーグループのソケットバインディンググループを作成するか、複数のサーバーグループ間でソケットバインディンググループを共有することができます。
デフォルトで JBoss EAP によって使用されるポートは、使用されるソケットバインディンググループと、個々のデプロイメントの要件に応じて異なります。
JBoss EAP 設定のソケットバインディンググループで定義できるソケットバインディングには 3 つの種類があります。
- インバウンドソケットバインディング
socket-binding
要素は、JBoss EAP サーバーのインバウンドソケットバインディングを設定するために使用されます。デフォルトの JBoss EAP 設定には、HTTP や HTTPS トラフィック用などの、事前設定されたsocket-binding
要素が複数提供されます。JBoss EAPConfiguring Messagingの Broadcast Groups には他の例も記載されています。この要素の属性については、ソケットバインディング属性 を参照してください。
- リモートアウトバウンドソケットバインディング
remote-destination-outbound-socket-binding
要素は、JBoss EAP サーバーのリモートとなる宛先のアウトバウンドソケットバインディングを設定するために使用されます。デフォルトの JBoss EAP 設定には、メールサーバーに使用できるリモート宛先のソケットバインディングの例が含まれています。JBoss EAPConfiguring Messagingの Using the Integrated Artemis Resource Adapter for Remote Connections には、他の例も記載されています。この要素の属性については、ソケットバインディング属性 の表を参照してください。
- ローカルアウトバウンドソケットバインディング
local-destination-outbound-socket-binding
要素は、JBoss EAP サーバーのローカルとなる宛先のアウトバウンドソケットバインディングを設定するために使用されます。通常、このソケットバインディングはあまり使用されません。この要素の属性については、ソケットバインディング属性 の表を参照してください。
4.2.1. 管理ポート
JBoss EAP 7 では、管理ポートが集約されました。JBoss EAP 7 は、管理 CLI によって使用されるネイティブ管理と、Web ベース管理コンソールによって使用される HTTP 管理の両方に 9990
ポートを使用します。JBoss EAP 6 でネイティブ管理ポートとして使用されていた 9999
ポートは使用されなくなりましたが、必要な場合は有効にできます。
管理コンソールに対して HTTPS を有効にすると、デフォルトではポート 9993
が使用されます。
4.2.2. デフォルトのソケットバインディング
JBoss EAP には、事前設定された 5 つのプロファイル (default、ha、full、full-ha、load-balancer) のソケットバインディンググループが含まれています。
デフォルトのポートや説明などのデフォルトのソケットバインディングに関する詳細情報は、デフォルトのソケットバインディング を参照してください。
JBoss EAP が使用するデフォルトのネットワークインターフェイスまたはポートを変更する場合は、変更したインターフェイスまたはポートを使用するスクリプトを変更する必要があることに注意してください。これには JBoss EAP サービススクリプトが含まれます。 また、管理コンソールまたは CLI にアクセスするときに適切なインターフェイスとポートを指定するようにしてください。
スタンドアロンサーバー
スタンドアロンサーバーとして実行されている場合、設定ファイルごとに 1 つのソケットバインディンググループのみが定義されます。各スタンドアロン設定ファイル (standalone.xml
、standalone-ha.xml
、standalone-full.xml
、standalone-full-ha.xml
、standalone-load-balancer.xml
) は、対応するプロファイルによって使用される技術のソケットバインディングを定義します。
たとえば、デフォルトのスタンドアロン設定ファイル (standalone.xml
) は以下のソケットバインディングを指定します。
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group>
マネージドドメイン
マネージドドメインで実行されている場合、すべてのソケットバインディンググループは domain.xml
ファイルで定義されます。事前定義されたソケットバインディンググループは 5 つあります。
-
standard-sockets
-
ha-sockets
-
full-sockets
-
full-ha-sockets
-
load-balancer-sockets
各ソケットバインディンググループは、対応するプロファイルによって使用される技術のソケットバインディングを指定します。たとえば、full-ha-sockets
ソケットバインディンググループは、高可用性のために full-ha プロファイルによって使用される複数の jgroups
ソケットバインディングを定義します。
<socket-binding-groups> <socket-binding-group name="standard-sockets" default-interface="public"> <!-- Needed for server groups using the 'default' profile --> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- Needed for server groups using the 'ha' profile --> ... </socket-binding-group> <socket-binding-group name="full-sockets" default-interface="public"> <!-- Needed for server groups using the 'full' profile --> ... </socket-binding-group> <socket-binding-group name="full-ha-sockets" default-interface="public"> <!-- Needed for server groups using the 'full-ha' profile --> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="iiop" interface="unsecure" port="3528"/> <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/> <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> <socket-binding name="jgroups-tcp" interface="private" port="7600"/> <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> <socket-binding-group name="load-balancer-sockets" default-interface="public"> <!-- Needed for server groups using the 'load-balancer' profile --> ... </socket-binding-group> </socket-binding-groups>
管理インターフェイスのソケット設定は、ドメインコントローラーの host.xml
ファイルに定義されます。
4.2.3. ソケットバインディングの設定
ソケットバインディングを設定するとき、port
および interface
属性や、multicast-address
および multicast-port
などのマルチキャスト設定を設定できます。使用できるソケットバインディング属性すべての詳細は、ソケットバインディングの属性 を参照してください。
ソケットバインディングは管理コンソールまたは管理 CLI を使用して設定できます。以下の手順では、ソケットバインディンググループの追加、ソケットバインディングの追加、および管理 CLI を使用したソケットバインディングの設定を行います。
新しいソケットバインディンググループを追加します。スタンドアロンサーバーとして実行している場合は追加できないことに注意してください。
/socket-binding-group=new-sockets:add(default-interface=public)
ソケットバインディングを追加します。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
ソケットバインディンググループによって設定されるデフォルト以外のインターフェイスを使用するよう、ソケットバインディングを変更します。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)
以下の例は、上記の手順の完了後に XML 設定がどのようになるかを示しています。
<socket-binding-groups> ... <socket-binding-group name="new-sockets" default-interface="public"> <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/> </socket-binding-group> </socket-binding-groups>
4.2.4. サーバーのソケットバインディングおよび解放ポートの表示
管理コンソールからソケットバインディング名とサーバーの解放ポートを表示できます。サーバーの状態が以下になると、情報が表示されます。
-
running
-
reload-required
-
restart-required
サーバーのソケットバインディングと解放ポートを表示するには、以下を実行します。
- 管理コンソールにアクセスし、Runtime に移動します。
- サーバーをクリックすると、ソケットバインディング名と解放ポートが右側のペインに表示されます。
4.2.5. ポートオフセット
ポートオフセットとは、該当するサーバーのソケットバインディンググループに指定されたすべてのポート値に追加される数値のオフセットのことです。これにより、同じホストの別のサーバーとの競合を防ぐため、サーバーはソケットバインディンググループに定義されたポート値とオフセットを継承できるようになります。たとえば、ソケットバインディンググループの HTTP ポートが 8080
で、サーバーが 100
をポートオフセットとして使用する場合、HTTP ポートは 8180
になります。
管理 CLI を使用してマネージドドメインのサーバーにポートオフセットとして 250
を設定する例を以下に示します。
/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
ポートオフセットは、マネージドドメインのサーバーと、同じホストで複数のスタンドアロンサーバーを実行する場合に使用できます。
jboss.socket.binding.port-offset
プロパティーを使用してスタンドアロンサーバーを起動するときにポートオフセットを渡すことができます。
$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100