nginxでRailsのアプリケーションと独立したファイルへのアクセスを設定する

別に何のアプリケーションでもいいのですが、nginxで他のアプリケーションを動かしつつ、独立したファイルへのアクセスも可能にするための設定メモ。

nginxのconfファイルを以下のようにします。

server {
  # ...(omission)...
  location /path/to/directory/ {
    access_log /var/log/nginx/temp_access.log;
    error_log /var/log/nginx/temp_error.log debug;
    root /var/www/;
    try_files $uri /file.txt;
  }
  # ...(omission)...
}

/var/www/path/to/directory/ の中にファイルを 対象のファイル (この例ではfile.txt) を設置します。

try_files でファイルを指定するときに、ファイル名の前に / が必要なので注意です。ここでハマってめっちゃ時間食った。。。

stackoverflow.com

error_logのdebugを使うと、infoレベルのログもエラーログに吐き出してくれるのでむっちゃ便利です。400とかだとエラーログ吐いてくれない。大事。

error_log /path/to/directory debug;