apache +nginx + виртуальные хосты

Discussion in 'Linux, Freebsd, *nix' started by RunDMX, 1 Dec 2009.

  1. RunDMX

    RunDMX New Member

    Joined:
    14 Jun 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    сайт подвергается ддос атаке в качестве простых мер решил поставить такую связку

    поставил все работает но не кеширует

    как только убираешь виртуальные хосты из Nginx.conf
    начинает кешировать и нормально работать

    server {
    listen ip:80;
    server_name server.ru;
    location / {
    proxy_pass http://127.0.0.1:80/;
    proxy_redirect off;

    proxy_set_header Host $host;
    proxy_set_header ClientIP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    client_max_body_size 10m;
    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 64k;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|r tf|swf|ico)$
    {
    root /path/to/virtualserver/root/;
    }



    }



    вот такой конфиг для каждого виртуального сервера

    отличаються только server_name и root картинок

    proxy_set_header Host $host; убираешь начинает кешировать но переста.т работать виртуальные хосты

    что делать ?
     
  2. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_cache

    syntax: proxy_cache [зона|off]
    default: off
    context: http, server, location


    Гугл сообщает

    Code:
    #Настройка файлового кеша. Первая опция определяет, 
        # путь, levels - определяет уровень вложенности дисковой
        # иерархии кеша, keys_zone - определяет имя области
        # разделяемой памяти и размер, в разделяемой памяти, nginx 
        # будет хранить активный кеш и ключи доступа, в моем 
        # случае имя one, размер 20 мегабайт. Эта опция
        # определяется, только в секции http nginx, глобально 
        # для всех виртуальных серверов.  
        proxy_cache_path /var/db/nginx levels=1:2 keys_zone=one:20m;
        # Имя используемой зоны, для разных виртуалхостов можно 
        # указывать разные, заранее определенные в секции http. 
        # Эту и все последующие опции можно определять 
        # индивидуально для каждого виртуального сервера
        proxy_cache one;
        # После скольких запросов результат запроса попадет в кеш
        proxy_cache_min_uses 1;
        # Кешировать результат выполнения запроса с кодом 200 и 302
        # на 30 минут
        proxy_cache_valid  200 302  30m;
        # 404 кешировать на 1 минуту
        proxy_cache_valid  404      1m;
        # При получении от бекэнда одного из перечисленных кодов
        # ответов,использовать разрешается использовать "несвежий"
        # кешированный результат выполнения запроса. 
        proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
    
     
    #2 svesve, 1 Dec 2009
    Last edited by a moderator: 2 Dec 2009