PDA

Просмотр полной версии : apache +nginx + виртуальные хосты


RunDMX
01.12.2009, 23:52
сайт подвергается ддос атаке в качестве простых мер решил поставить такую связку

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

как только убираешь виртуальные хосты из 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; убираешь начинает кешировать но переста.т работать виртуальные хосты

что делать ?

svesve
02.12.2009, 00:32
http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_cache

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


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


#Настройка файлового кеша. Первая опция определяет,
# путь, 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;