2011-08-28 15 views
5

私は、Rails 3.1.0rc6、Thin、Nginxを実行している本番環境をセットアップしました。Railsはconfig.action_dispatch.x_sendfile_headerを無視していますか? Thin + Nginxの使用

config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"config/environments/production.rbに設定して何らかの理由でRailsが完全に無視したようです。資産が提供されていない、と次のように一つのファイルのための応答ヘッダは次のとおりです。

Server: nginx/1.0.5 
Date: Sun, 28 Aug 2011 00:26:08 GMT 
Content-Type: image/png 
Content-Length: 0 
Cache-Control: no-cache 
Last-Modified: Sat, 27 Aug 2011 23:47:35 GMT 
Etag: "af4810c52cb323d9ed061d1db5b4f296" 
X-UA-Compatible: IE=Edge,chrome=1 
X-Sendfile: /var/www/***/app/assets/images/bg-linen-light.png 
X-Runtime: 0.004595 
X-Content-Digest: da39a3ee5e6b4b0d3255bfef95601890afd80709 
Age: 0 
X-Rack-Cache: stale, valid, store 

200 OK 

は、だから、Railsがまだヘッダを設定しているようです。 sendfile_header行をconfig/application.rbに追加しようとしましたが、上書きされているか無視されていると思います。

シンのための私のYMLファイル:

--- 
chdir: /var/www/*** 
environment: production 
address: 0.0.0.0 
port: 3000 
timeout: 30 
log: log/thin.log 
pid: tmp/pids/thin.pid 
max_conns: 1024 
max_persistent_conns: 512 
require: [] 

wait: 30 
servers: 1 
daemonize: true 

nginxのバーチャルホスト:

upstream *** { 
    server 127.0.0.1:3000; 
} 

server { 
    listen 80; 
    server_name ***; 
    root /var/www/***/public; 
    index index.html; 

    location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 

     if (-f $request_filename/index.html) { 
      rewrite (.*) $1/index.html break; 
     } 

     if (-f $request_filename.html) { 
      rewrite (.*) $1.html break; 
     } 

     if (!-f $request_filename) { 
      proxy_pass http://***; 
      break; 
     } 
    } 
} 

私はすでに無駄に、再び数回それを開始、その後/etc/init.d/thin stopを試してみました。

答えて

3

私はproduction.logでこの出くわし:

Started GET "/assets/bg-linen-light.png" for ***** at 2011-08-28 11:04:42 +0400 
Served asset /bg-linen-light.png - 304 Not Modified (102ms) 

問題は、ブラウザがそのレール(および/または思えるようx_sendfile_header前にファイルは、それがどうあるべきかに変更されたことを要求していたということですブラウザ)は、変数を変更した後はまったく何もしません。

rails consoleにアクセスし、Rails.cache.clearと入力して問題を解決しました。それ以降のハードリフレッシュは問題を解決します!

Started GET "/assets/bg-linen-light.png" for ***** at 2011-08-28 11:06:06 +0400 
Served asset /bg-linen-light.png - 200 OK (4ms) 
関連する問題