0

私はnginxサーバー構成に非常に慣れていません。public ディレクトリのサブディレクトリの下にあるファイルの提供に問題があります。

例、以下のファイル。rails_app/public/uploads/client/2/image/7/ ディレクトリまたは rails_app/public/picture/ ディレクトリは提供されませんが、問題はありません: rails_app/public/webcam.swf

どういうわけかサブディレクトリが提供されていないようです。

私の production.rb ファイル

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

serve_static_assets を true に設定した場合のみ、問題はありません

私のnginx構成:

upstream thin {
  server '127.0.0.1:3000';
  server '127.0.0.1:3001';
  server '127.0.0.1:3002';
  server '127.0.0.1:3003';
  server '127.0.0.1:3004';
}

server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/user/appname/public;

  location ^~ /assets/ {
    root /home/user/appname/public;
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://thin;
  }
  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

この構成を手伝ってもらえますか?

前もって感謝します。

4

1 に答える 1

2

location /問題は、ブロックが動的リクエストと非アセットの静的リクエストをキャッチしていることだと思います。この設定を試してください (try_files 行に注意してください):

server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/user/appname/public;
  try_files $uri @app;

  location ^~ /assets/ {
    root /home/user/appname/public;
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  location @app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://thin;
  }
  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}
于 2013-02-21T02:20:05.677 に答える