ローカル環境のWildflyでIP指定で外部接続する方法

小ネタです。

WildflyとJAX-RSでAPIの開発を行っていて別マシンからIP指定でAPIをコールしたかったのですが、
うまくいかなかったので調べたら設定ファイルの修正が必要とのこと。

たとえば、
http://localhost:8080/api/hogehoge

http://xxx.xxx.xxx.xxx:8080/api/hogehoge
な感じ。

環境は、
・Wildfly 10.1.0
です。

修正方法

デフォルトではlocalhostアクセスのみ許可をされているので外部接続を許可する必要があります。

具体的には、
Wildflyのインストールディレクトリから、
[standalone] >> [configuration]
と移動して先にある「standalone.xml」の修正が必要。

401行目でアクセス制限の記載があります。

    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:127.0.0.1}"/>
        </interface>
    </interfaces>

ここを「<any-address/>」に変更すればOKです。

    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <any-address/>
        </interface>
    </interfaces>

一応オリジナルとのdiff

401c401
<             <inet-address value="${jboss.bind.address:127.0.0.1}"/>
---
>             <any-address/>

これでうまくアクセスできました。

追記

先輩エンジニアのRyoichi Obara (id:ryoichi0102)から下記の方法でもanyになることを教えていただきました。

1. inet-addressのvalueに「0.0.0.0」を指定。

    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <inet-address value="0.0.0.0"/>
        </interface>
    </interfaces>

2. シェルで起動時に引数で指定

Wildflyのインストールディレクトリから、
[standalone] >> [bin]
にコマンドから起動するファイルがあります。
shかbatかは起動する環境次第ですがどちらも指定方法は同じです。

これを実行する際に下記のようにパラメータを指定します。

# bat
standalone.bat -b 0.0.0.0

# sh
standalone.sh -b 0.0.0.0

※ 開発環境がwindowsなのでshは未検証

どちらもIPにてアクセスができることを確認できました。
ありがとうございました。

参考サイト

WildFly8.1.0メモ

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る