2011-02-05 99 views
0

當我在網站上進行操作時,比如註冊或創建記錄,nginx會在操作前呈現頁面的緩存版本,但是當我刷新時,我會看到正確的頁面。nginx無法正確緩存的乘客

我有最新的客運nginx的運行與CONF:

pid /opt/nginx/logs/nginx.pid; 
# Run as the nginx user 
user root; 
worker_processes 2; 

error_log /opt/nginx/logs/error.log notice; 

events { 
    worker_connections 1024; 
    use epoll; 
} 

http { 
    server_names_hash_bucket_size 64; 
    # More Linux performance awesomeness 
    tcp_nopush on; 
    tcp_nodelay off; 

    # Where to store the body of large client requests on disk 
    # NGINX will stream this to disk before posting it to your Mongrels, 
    # preventing slow clients tying up your app. 
    client_body_temp_path /var/spool/nginx-client-body 1 2; 

    # Max size of a request from a client (usually a POST). This will 
limit 
    # the size of file uploads to your app 
    client_body_buffer_size 8k; 
    client_header_buffer_size 1k; 
    client_max_body_size 1k; 
    large_client_header_buffers 4 8k; 

    ## Timeouts 
    client_body_timeout 5; 
    client_header_timeout 5; 
    keepalive_timeout 5 5; 
    send_timeout 5; 

    ## General Options 
    ignore_invalid_headers on; 
    limit_zone carboncal $binary_remote_addr 1m; 
    recursive_error_pages on; 
    sendfile on; 
    server_name_in_redirect off; 
    server_tokens off; 

    # passenger loading stuff 
    passenger_root 
/usr/local/rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2; 
    passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p136/ruby; 

    include /opt/nginx/conf/mime.types; 
    default_type application/octet-stream; 

    ## Compression 
    gzip on; 
    gzip_buffers 16 8k; 
    #compression level between 1 and 9 
    gzip_comp_level 9; 
    gzip_http_version 1.0; 
    gzip_min_length 0; 
    gzip_types text/plain text/html text/css image/x-icon image/bmp application/x-javascript text/xml application/xml application/xml+rss text/javascript ; 
    gzip_vary on; 
    gzip_proxied any; 
    # Some version of IE 6 don't handle compression well on some mime-types, so just disable them 
    gzip_disable "MSIE [1-6].(?!.*SV1)"; 


    # Send along useful info to the mongrels 
    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; 
    proxy_max_temp_file_size 0; 

    ## Log Format 
    log_format main '$remote_addr $host $remote_user [$time_local] "$request" ' 
        '$status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"'; 


    access_log /opt/nginx/logs/access.log main; 

    # virtual hosting 
    server { 
    access_log /opt/nginx/logs/test_server.access.log main buffer=32k; 
    error_log /opt/nginx/logs/test_server.error.log info; 
    expires 6h; 
    listen 80 default rcvbuf=64k backlog=128; 
    root /opt/apps/website/public; 
    server_name website.com www.website.com; 
    passenger_enabled on; 
if (-f $document_root/system/cache/$uri/index.html) { 
    rewrite (.*) /system/cache/$1/index.html break; 
} 

if (-f $document_root/system/cache/$uri.html) { 
    rewrite (.*) /system/cache/$1.html break; 
} 
    } 
} 

我猜問題與重寫做。我嘗試了各種重寫規則,但仍然沒有。

回答

1

這是我期望發生的事情。除非我錯了(我可能已經很長時間了,因爲我查看了Nginx配置),你的配置是將expires標頭設置爲6小時。

我懷疑刷新只是強制頁面下載非緩存版本。您可能只想將公開內容緩存6個小時。

+0

太棒了,修正了它!讓我無需理解就可以從Internet複製代碼。 – 2011-02-05 02:25:39