nginx
intra-mart
More than 1 year has passed since last update.

intra-martをnginxで建てる必要が発生したのでとりあえず構築メモ。
intra-martさんのマニュアルを見ると、サポートしているwebサーバはIISとApacheだけみたい。

設定を見た感じ、多分以下のようなことをやっている(と思う)

  • %2F(スラッシュ)をデコードせず渡すように
  • 画像ファイルやテキストファイルをwebサーバーで処理
    • ただし、URLが/imart/reverse_proxy/, /imart/kibana/配下のものに関しては、webサーバーで処理しない
    • 上記以外はアプリケーションサーバーで処理
      • その際にタイムアウトを1200秒に設定
      • リダイレクト時にも書き換え(ProxyPassReverse)
  • アクセスログのためにX-Forwarded-Forを設定
  • webサーバーとアプリケーションサーバー間でKeep-aliveをオフ

というわけで、頑張ってnginxの設定を書いてみた。

nginx.conf
    server {
        listen       80;
        server_name  localhost;

        location ~* ^/imart/(?!reverse_proxy/)(?!kibana/)(.*\.gif|.*\.png|.*\.jpg|.*\.css|.*\.js|.*\.swf|.*\.ico|.*\.json|.*\.jar|.*\.xml|.*\.yaml|.*\.txt|.*\.html|.*\.htm)$ {
        }

        location /imart {
            proxy_read_timeout 1200s;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.1.1:8080/imart;
            client_max_body_size 64m;
        }
    }

とは言っても大した事はやっていない。
多分、locationとかは一個で書いたり(その分正規表現がややこしくなる)もしくはもっと分けて書いたり(正規表現は分かりやすくなる)とかはできると思うけど、とりあえずこんな感じで書いてみた。
ファイルアップロードは64MBまでできるようにしてみた。
Keep-aliveは何も設定しなくてもcloseになる模様。

ちょろっと動確してみた感じ、上の箇条書き部分は動いていそう。
ここまで書いて以下の記事を発見!

弊社の社内システムについて

IMBoxの各ユーザのアイコンが出なくなってしまったので、深追いはやめました。

試した感じ、この設定でユーザのアイコンは表示されているみたい。もしかして違う所かな、それとも何か見落としているかな。
とりあえず、Cometも動いてるっぽいのでこの記事でも深追いせずこれで良しとする。

まぁ当面はなんとなくでも動けばいいのでとりあえずはこれで!