サーバー

nginxで静的ファイルを返す設定、あってますか?

こんばんは、ころすけ(@wg_koro)です。

Redmine入り口

iPhoneアプリ「RedminePM」と、自宅のRedmineを連携させようとしたんです。そしたら何故かエラーが出る。REST APIも有効にしているし、XMLも読み込みできる。でもiPhoneアプリと連携できない。何故?

nginxの設定間違えてた

手っ取り早く言うと、nginxの設定間違いでした。静的ファイル(CSS,js,jpg..etc)はnginxが直接返すようにしていたんですが、ここの設定にミスがありました。

アクセスログをたどると、プロジェクト一覧を表示するAPI(下記)で404エラーが返ってました。あれ?
/projects.json?key=xxx
JSONなのにpublicディレクトリを見に行こうとしてる。静的ファイル扱いされてる。

…あ。

違いが分かりますか?

location ~ .*.(jpg…) の一番後ろに「$」が入っていない。

これを入れていないと「.js」はもちろん、「.json」もHITしちゃいます。おうふ orz

ま、何はともあれこれでOK。無事にiPhoneアプリと連携できるようになりました。REST APIを使った連携で上手くいかない場合、このあたりをお調べ下さい。

Facebook / 広告
2013年10月08日 | Posted in サーバー4 Comments » 

関連記事

コメント4件

  • ほっし より:

    ぷぷっ(ˆωˆ )

  • レミ より:

    正解と間違いの違いが全く無いように見える・・・。

  • andy より:

    >>location ~ .*.(jpg…) の一番後ろに「$」が入っていない。

    とありますが、正解の方にも入っていないですよお

  • wg koro より:

    失礼しました!
    WordPressのコードハイライトツールが「$」の文字をエスケープしないと表示しない仕様だったようです…。修正しました。

  • コメントを残す

    メールアドレスが公開されることはありません。

    スパム対策のため、コメントする際は下記の計算式を埋めてください。 計算式の有効期限が切れました。計算式の隣にある再読み込みボタンを押してください。