JBoss を Nginx から使用する

JBoss を Nginx から使用するには、リバースプロキシ設定すればおっけ。

server {
    listen 80;
    server_name example.com;
    root  /path/to/app;
    index index.html index.htm;

    :

    location / {
        proxy_pass http://127.0.0.1:8080;  # JBoss server name
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

ただし、クライアントの IP とかを取得する時に HttpServletRequest の getRemoteAddr() メソッドでは、Nginx サーバの IP アドレスを取得してしまうので、以下のようにして x-forwarded-for を取得するようにしてやる。

public static InetAddress remoteIp(final HttpServletRequest request)
        throws UnknownHostException {
    if (request.getHeader("x-forwarded-for") != null) {
        return InetAddress.getByName(request.getHeader("x-forwarded-for"));
    }
    return InetAddress.getByName(request.getRemoteAddr());
}

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中