Назад | Перейти на главную страницу

Самый быстрый / масштабируемый способ обслуживания статических файлов?

Какие есть варианты для очень быстрого обслуживания статических файлов?

Есть ли какие-нибудь опции, позволяющие кешировать файл в памяти сервера и т. Д.? Например, кеширование файлов js в памяти.

Я знаю nginx, но он по-прежнему каждый раз читает файл с жесткого диска, и я хочу уменьшить количество операций ввода-вывода с диска, сохранив их в памяти.

У меня около 1000 запросов к файлам js каждую секунду, и они замедляют работу сервера, иногда даже сбой apache.

Какие еще есть альтернативы nginx для работы со стеком LAMP в CentOS 5.6

ОЗУ определенно быстрее диска (если вам нужны подробности, проверьте числа, которые должен знать каждый).

Если у вас есть доступная память на веб-сервере, вы можете создать RAM-диск. Если у вас есть множество систем, возможно, что-то вроде memcached было бы лучше.

Я знаю nginx, но он по-прежнему читает файл с жесткого диска каждый раз

Нет, он не читает файл каждый раз с диска. Поскольку вы используете CentOS и, следовательно, ядро ​​Linux, он точно, как смерть, кэширует часто используемые файлы и записи каталогов в ОЗУ.

Либо у вас гораздо больше «горячих» статических файлов, чем у вашего сервера RAM, либо что-то еще поглощает ваш дисковый ввод-вывод. Пара тысяч запросов к статическим файлам должна быть пустяком для любого разумного программного обеспечения веб-сервера. Даже Apache должен справиться с этим нормально, хотя lighttpd или nginx, вероятно, лучше подходят для этой задачи, особенно если статические файлы большие.

Может, уровень лога настолько высок, что постоянная запись мучает HD? Если речь идет об этом и вам необходимо хранить журналы, рассмотрите возможность отправки журналов на отдельный центральный сервер системного журнала по сети.

Зевс это самый быстрый из известных мне веб-серверов. При загрузке скопируйте все на RAM-диск ...

Если вы хотите / вам нужно придерживаться стека LAMP, существуют модули ускорения для Apache для статического контента, а также могут помочь обратные прокси-серверы, такие как Squid, Vanrish или HAProxy.

В зависимости от того, почему вам нужно «быстрее» сервер (бессмысленный термин в данном контексте), вы можете получить выгоду от фермы балансировки нагрузки или другого подключения к Интернету.

Я поддерживаю предложение использовать систему кеширования, такую ​​как Varnish. В зависимости от ваших потребностей, если у вас есть динамический контент, я бы предложил сделать такую ​​настройку:

Используйте Varnish как интерфейсную часть, а Apache И Nginx - в задней части. Когда запрашивается что-то, что не кэшируется, он (Varnish) затем передает запрос Apache для динамического содержимого и передает запрос Nginx для статического содержимого.

Таким образом, большая часть вашего материала хранится в оперативной памяти (кеш Varnish). Varnish - это невероятно быстрый кэширующий сервер / обратный прокси-сервер (а также его можно настроить как хороший балансировщик нагрузки для нескольких серверов).