「nginx+unicorn+redmineでサブURIを設定する」で紹介した設定ですが、チケットへのファイルアップロード時に「NOT FOUND」と表示されてアップロードできない事象がありました。
コンソールログを見ると「/redmine/uploads.js?xxx」へのアクセスが404になっておりこれが原因のようです。
調べて見ると同じ事象は結構報告されていました。
以下の設定だと、uploads.jsが静的コンテンツとして認識されますが、どうやらunicornさんに渡してあげなきゃいけないようです。
location ~ ^/redmine/.*\.(css|js|png|gif)$ { } location /redmine { proxy_pass http://127.0.0.1:3000/redmine; }
というわけで、静的コンテンツ側の正規表現をuploadsというファイルを除外する様変更することで無事アップロードに成功しました。
location ~ ^/redmine/(?!uploads).*\.(css|png|gif|js)$ { }
ちなみに、filesディレクトリにnginx権限が割り当たってないという原因もあるそうなので、上記が関係ない場合は/var/lib/redmine/filesのディレクトリ権限を確認すると良いかもしれません。