nginx + IIS6.0 + asp.net и кеширование страниц целиком

Dmitry AT nginx-forum на nginx.us
Чт Июл 28 15:41:07 UTC 2011


Добрый день.

Имеем связку nginx 1.0.5 + IIS c сайтом на asp.net

Не получается кешировать нужные
страницы целиком.
Страница загружается но в  /tmp/nginx/cache
пусто и запрос этой страницы есть в
логах nginx и IIS.
В error.log чисто

Подскажите, пожалуйста, что я делаю не
так. Перепробовал разные варианты
конфигов, но так ничего и не добился. 

Если 
llocation /Widgets/Widget.aspx {
proxy_pass      http://10.0.2.71:80/Widgets/Widget.aspx;
 ......
заменить на 

location / {
proxy_pass      http://10.0.2.71:80/;
......
то в /tmp/nginx/cache файлы начинают
создаваться т.е. как я понимаю с записью
в кеш проблем нет.


Nginx 1.0.5 установлен с ключами ./configure
--prefix=/etc/nginx --sbin-path=/usr/sbin --with-http_ssl_module
на Linux 2.6.37.1-1.2 x86_64

Конфиг nginx:
nginx.conf

user                               root;
error_log                       /etc/nginx/logs/error.log;
pid                                 /etc/nginx/logs/nginx.pid;

daemon                        on;
worker_processes      2;
#worker_priority           -1;
events
    {
        worker_connections  1024;
        use epoll;
    }

http
    {
    include                              mime.types;
    default_type                    application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local]
$request '
    #                  '"$status" $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  log/access.log  main;

    log_format                    '$remote_addr -  $remote_user
[$time_local] "$request" $status $bytes_sent'
                                           ' "$host" "$http_user_agent"
"$http_referer" "$gzip_ratio" "$request_time"';
    access_log                   /etc/nginx/logs/access.log;
    charset                          off;
    client_body_buffer_size         32k;
    client_body_timeout               60;
    client_header_buffer_size     4k;
    client_header_timeout           50;
    client_max_body_size           512m;
    keepalive_requests               200;
    keepalive_timeout                 60 58;
    tcp_nodelay                            on;
    tcp_nopush                             off;
    sendfile                                    off;
    large_client_header_buffers   4 16k;

    # limit_rate_after              3m;
    # limit_rate                      700k;

    # Директива разрешает или запрещает
записывать в error_log ошибки о том, что
файл не найден.
    log_not_found                   off;

    # Директива разрешает или запрещает
записывать в access_log подзапросы.
    log_subrequest                  on;
    merge_slashes                   on;
    open_file_cache                 max=1000  inactive=40s;
    open_file_cache_errors          on;
    open_file_cache_min_uses        1;
    open_file_cache_valid           120s;
    reset_timedout_connection       on;
    server_names_hash_max_size      1024;
    server_names_hash_bucket_size   512;
    server_tokens                   off;
    proxy_buffer_size               32k;
    proxy_buffering                 on;
    proxy_buffers                   8 32k;
    proxy_cache_path                /tmp/nginx/cache  levels=1:2
keys_zone=one:2048m inactive=120m max_size=3072m;
    proxy_cache_min_uses            1;
    proxy_cache_valid               200 302  15m;
    proxy_cache_valid               301      30m;
    proxy_cache_valid               any       1m;
    proxy_connect_timeout           40;
    proxy_ignore_client_abort       off;
    proxy_intercept_errors          off;
    proxy_read_timeout              360;
    proxy_send_timeout              120;
    proxy_set_header                Host   $host;
    proxy_set_header                X-URI  $request_uri;
    proxy_set_header                X-Forwarded-For 
$proxy_add_x_forwarded_for;
    proxy_store                     off;
    proxy_temp_path                 /tmp/nginx/temp 1 2;
    postpone_output                 2920;
    gzip                            off;
    gzip_min_length                 1024;
    gzip_buffers                    16 8k;
    gzip_http_version               1.1;
    gzip_types                      application/x-javascript text/css;
    gzip_vary                       on;
    server_name_in_redirect         off;
    connection_pool_size            1024;
    request_pool_size               16k;

    include                         /etc/nginx/conf/mirrors.conf;
    
    }


Конфиг сайта:
mirrors.conf

server {
listen                                      10.0.2.232:80;
server_name                        myservername
server_name_in_redirect    off;

location / {
proxy_pass      http://10.0.2.71:80/;
proxy_redirect off;
proxy_set_header   Host         $host;
proxy_set_header   X-Real-IP   $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
client_max_body_size         100m;
client_body_buffer_size       128k;
proxy_connect_timeout         90;
proxy_send_timeout              90;
proxy_read_timeout              90;
proxy_buffer_size                  4k;
proxy_buffers                         4 32k;
proxy_busy_buffers_size      64k;
proxy_temp_file_write_size 10m;
gzip on;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_comp_level 3;
gzip_types text/plain application/xml application/x-javascript
text/css;
}

location /Widgets/Widget.aspx {
proxy_pass      http://10.0.2.71:80/Widgets/Widget.aspx;
proxy_cache one;
proxy_cache_key "$request_method|$is_args|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "X-Accel-Redirect" "X-Accel-Expires" "Expires"
"Cache-Control";
proxy_cache_valid 200 302 304 30m;
proxy_cache_valid 301 1h;
proxy_cache_valid 503 30s;
proxy_cache_valid any 5m;
proxy_cache_use_stale http_502 http_503 http_504;

expires 1y;
}
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213044,213044#msg-213044



Подробная информация о списке рассылки nginx-ru