LoginSignup
2
3

nginx

Last updated at Posted at 2016-07-06

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も動いてるっぽいのでこの記事でも深追いせずこれで良しとする。

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

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3