0

Debianでシンとnginx(0.7.6)を使用して、レールアプリをプロダクションモードで実行しています。かなりうまく機能していますが、最後に変更されたヘッダーを実装しようとしましたが、nginx を再起動すると、クライアントはアセットをロードしなくなりました。

これは私のnginx構成です:

upstream instance-name {
        server unix:/var/run/thin/appname.0.sock;
        server unix:/var/run/thin/appname.1.sock;
        server unix:/var/run/thin/appname.2.sock;
        server unix:/var/run/thin/appname.3.sock;
}

server {
        listen 5678;
        server_name appname;
        access_log /root/rails/appname/log/access.log;
        error_log /root/rails/appname/log/error.log;
        root /root/rails/appname/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://fibre-dox;
                        break;
                }
        }
        location ~* \.(jpg|gif|png|css|js)$ {
               if (-f $request_filename) {
                       expires max;
                       break;
               }
        }
}

私に問題を引き起こす部分はこれです:

location ~* \.(jpg|gif|png|css|js)$ {
                   if (-f $request_filename) {
                           expires max;
                           break;
                   }
            }

私は何を間違っていますか?最後に変更されたヘッダーを使用して、クライアントがページにアクセスするたびにすべての写真をリロードしないようにします。

4

1 に答える 1

0
    location / {
            try_files $uri $uri/ $uri.html @backend;

            location ~* \.(?:jpg|gif|png|css|js)$ {
                try_files $uri @backend;
                expires max;
            }
    }

    location @backend {
            proxy_pass http://fibre-dox;
            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;

            location ~* \.(?:jpg|gif|png|css|js)$ {
                proxy_pass http://fibre-dox;
                expires max;
            }
    }
于 2012-07-18T17:50:05.790 に答える