Кто то любит золотые молотки и настраивает универсальное решение только на базе одного инструмента (например: nginx или lighttpd). А некоторым нравится вариант разделения на подзадачи и применения для решения каждой из них своего инструментария. Apache удобен для управление логикой работы веб-сервера, nginx быстро раздаёт файлы (вместо него можно использовать lighttpd), а между ними можно поставить кэширующий прокси-сервер Varnish (вместо него можно использовать Squid).
Установим Varnish, набрав в консоли:
Откроем файл настроек Varnish:
и внесём в него изменения для настройки Ip адреса и порта на котором работает Apache (подробнее в статье: «
Установка nginx перед Apache»):
backend default {
.host = "127.0.0.1";
.port = "80";
}
sub vcl_recv {
# Normalize Content-Encoding
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(\?.*|)$") {
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
remove req.http.Accept-Encoding;
}
}
# Remove cookies and query string for real static files
if (req.url ~ "^/[^?]+\.(jpeg|jpg|png|gif|ico|js|css|txt|gz|
# Удалите данный перенос строки фильтров в реальном файле
zip|lzma|bz2|tgz|tbz|html|htm)(\?.*|)$") {
unset req.http.cookie;
set req.url = regsub(req.url, "\?.*$", "");
}
}
Перезапустим Varnish (что бы изменения вступили в силу), набрав в консоли:
/etc/init.d/varnish restart
Изменим настройки виртуального хоста nginx (подробнее в статье: «
Установка nginx перед Apache»):
location / {
proxy_pass http://127.0.0.1:6081/;
include /etc/nginx/proxy.conf;
}
Перезапустим nginx (что бы изменения вступили в силу), набрав в консоли:
sudo /etc/init.d/nginx restart