Nginx+Tomcat7でリバースプロキシを組んだときにリクエストホストが127.0.0.1になるのを防ぐ方法

alkoshikawa 1,093views 更新:2014年6月19日

Nginxに以下をのように「X-Forwarded-For」「X-Forwarded-Proto」をいれておく

   location @tomcat {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_connect_timeout   90;
        proxy_send_timeout      90;
        proxy_read_timeout      90;
        proxy_buffers           4 32k;
        client_max_body_size    8m;
        client_body_buffer_size 128k;
    }

Tomcatのアプリケーションのweb.xmlに以下を追加する

    <filter>
      <filter-name>RemoteIpFilter</filter-name>
      <filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
      <init-param>
        <param-name>remoteIpHeader</param-name>
        <param-value>x-forwarded-for</param-value>
      </init-param>
      <init-param>
        <param-name>protocolHeader</param-name>
        <param-value>x-forwarded-proto</param-value>
      </init-param>
    </filter>

   <filter-mapping>
     <filter-name>RemoteIpFilter</filter-name>
     <url-pattern>/*</url-pattern>
     <dispatcher>REQUEST</dispatcher>
   </filter-mapping>

 

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません