Welcome! Log In Create A New Profile

Advanced

Проблема кеширования медленного удаленного фронтэнда

July 08, 2011 12:28PM
Приветствую всех.
Кротко опишу проблему.
В ВУЗе, где я работаю, есть сайт. Расположен он на сервере в DMZ локальной сети. Исходящий канал в интернет всего 0,5 Мбит/с (да такой ужас). Веб сервер смотрит в интернет одним интерфейсом и в локальную сеть другим.
Конфигурация сервера: FreeBSD 8.2, Apache 2.2, php 5.2, mysql 5.1. Сам сайт писан на drupal.
У сайта есть несколько особенностей:
Первая собенность в том, что его очень интенсивно используют юзеры локальной сети. Постоянно добавляют и редактируют контент. Но т.к. в локальной сети коннект 100 Мбит/с, чувствуют они себ достаточно комфортно.
Вторая особенность в том, что во время вступительной кампании внешний траффик на сайт резко возрастает. Связано это с тем что в это время абитуриенты ломятся познакомится с ВУЗом и мониторят проходной бал на свои специальности, который меняется в реальном времени на сайте.
Из-за значительной нагрузки и узкого канала в интернет у внешних пользователей сайт практически не грузится.
Возможности расширить канал пока нет. Мы придумали решение - арендоваnm VPS и повесить на него фронтэндом nginx. Идея состояла в том, чтобы nginx сделал себе полный кеш сайта, и отдавал его, не напрягая фронтэнд.
Так и сделали. Однако ощутимого прироста быстродействия не ощутили (проверяли с помощью loadimpact).
В связи с этим у меня несколько вопросов.
1. Правильной ли дорогой идем, товарищи? Или есть более изыщное решение.
2. Как заблаговременно сделать локальный кеш на сервере фронтэнде и синхнонизировать его скажем раз в пол-часа?
3. Каз сделать локальный .gz кеш на сервере фронтэнде, чтобы всю статику пусть и зазипованную не нянуть с удаленного сервера, а складировать у nginx'a локально и оттуда отдавать.
Спасибо всем кто дочитал. Надеюсь на вашу помощь и снисходительность.
Конфиг nginx :
user _nginx;
worker_processes 1;
error_log /var/log/nginx/error.log notice;
events {
worker_connections 1024;
use kqueue;
}
http {
include mime.types;
proxy_pass_header Cookie;
proxy_cache_path /var/nginx/cache
levels=1:2 keys_zone=my_cache:1024m max_size=3092m
inactive=1d;
proxy_cache my_cache;
proxy_cache_valid 200 3h; # раз в три часа будем позволять себе обновлять кеш :)
proxy_cache_valid any 0; # не кешируем 500 и 400 ошибки
proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 http_503 http_504 http_404; # если ваш скрипт отдал одну из описанных ошибок, ис
пользовать вариант из кеша, если он есть, даже если он уже заэкспайрился
proxy_cache_key "$scheme$proxy_host$uri$is_args$args$cookie_sid";
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 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 1500;
proxy_send_timeout 1500;
proxy_read_timeout 1500;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /var/nginx/proxy_temp;
default_type application/octet-stream;
reset_timedout_connection on;
sendfileon;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_static on;
gzip_http_version 1.1;
gzip_proxiedexpired no-cache no-store private auth;
gzip_disable"MSIE [1-6]\.";
gzip_vary on;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
upstream backend {
server 75.205.198.2:80;
}
listen 80 default;
server_name localhost;
deny all;
}
server {
listen 80;
server_name www.site.ru site.ru;
location / {
proxy_pass http://backend;
access_log off;
}
location ~ /\.ht {
deny all;
}
}
}
Subject Author Posted

Проблема кеширования медленного удаленного фронтэнда

burguyd July 08, 2011 12:28PM

Re: Проблема кеширования медленного удаленного фронтэнда

Andrey Kopeyko July 11, 2011 09:02AM

Re: Проблема кеширования медленного удаленного фронтэнда

Игорь Вавржин July 11, 2011 09:02AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 11, 2011 01:26PM

Re: Проблема кеширования медленного удаленного фронтэнда

burguyd July 12, 2011 02:06AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 02:16AM

Re: Проблема кеширования медленного удаленного фронтэнда

burguyd July 12, 2011 05:14AM

Re: Проблема кеширования медленного удаленного фронтэнда

burguyd July 15, 2011 02:27AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 05:30AM

Re: Проблема кеширования медленного удаленного фронтэнда

studz July 12, 2011 05:36AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 05:40AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 05:38AM

Re: Проблема кеширования медленного удаленного фронтэнда

Alex Vorona July 15, 2011 04:56AM

Re: Проблема кеширования медленного удаленного фронтэнда

burguyd July 15, 2011 06:58AM

Re: Проблема кеширования медленного удаленного фронтэнда

burguyd July 15, 2011 06:59AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 02:22AM

Re: Проблема кеширования медленного удаленного фронтэнда

Илья Шипицин July 12, 2011 02:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 141
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready