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());
}
コメントを残す