Конфигурация Apache 2

 

# выставляем заголовок Content‑Encoding: gzip

AddEncoding gzip .gz

# с самого начала включаем gzip для текстовых файлов

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

# и для favicon.ico

AddOutputFilterByType DEFLATE image/x‑icon

# также для CSS‑ и JavaScript‑файлов

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE text/javascript

AddOutputFilterByType DEFLATE application/x‑javascript

 

# далее устанавливаем максимальную степень сжатия (9)

# и максимальный размер окна (15). Если сервер не такой мощный,

# то уровень сжатия можно выставить в 1, размер файлов при этом

# увеличивается примерно на 20%.

DeflateCompressionLevel 9

DeflateWindowSize 15

 

# отключаем сжатие для тех браузеров, у которых проблемы с

# его распознаванием:

BrowserMatch ^Mozilla/4 gzip‑only‑text/html

BrowserMatch ^Mozilla/4\.0[678] no‑gzip

BrowserMatch Konqueror no‑gzip

BrowserMatch \bMSIE !no‑gzip !gzip‑only‑text/html

 

# указываем прокси‑серверам передавать заголовок User‑Agent для

# корректного распознавания сжатия

Header append Vary User‑Agent

 

# запрещаем кэширование на уровне прокси‑сервера для всех файлов,

# для которых у нас выставлено сжатие,

<FilesMatch .*\.(css|js|php|phtml|shtml|html|xml)$>

Header append Cache‑Control: private

</FilesMatch>

 

# включаем кэширование для всех файлов сроком на 10 лет

ExpiresActive On

ExpiresDefault "access plus 10 years"

 

# отключаем его для HTML‑файлов

<FilesMatch .*\.(shtml|html|phtml|php)$>

ExpiresActive Off

</FilesMatch>

 

Конфигурация nginx 0.7+

 

Пример конфигурационного файла для одного виртуального сервера:

server {

#слушаем порт 80

listen 80;

 

#перечисляем через пробел имена этого сервера

server_name core.freewheel.ru:

 

#путь к корню сервера

root /my/path/to/core.freewheel.ru;

 

#пути к логам

access_log /my/path/to/core‑access.log combined;

error_log /my/path/to/core‑access.log info;

 

#подключаем шаблон настроек сервера, в нем самое интересное

include _servers_template;

 

#разрешаем себе посмотреть статус сервера

location = /nginx_status {

stub_status on;

access_log off;

allow 127.0.0.1;

deny all;

}

 

#включаем сжатие для тех браузеров, которые его понимают

gzip on;

 

#определяем минимальную версию протокола HTTP, для которой отдаем архивы

gzip_http_version 1.0;

 

#устанавливаем максимальный уровень сжатия

gzip_comp_level 9;

 

#разрешаем проксировать сжатые файлы

gzip_proxied any;

 

#и определяем типы файлов (все, которые хорошо сжимаются)

gzip_types text/plain text/css application/x‑javascript text/xml application/xml application/xml+rss text/javascript image/x‑icon;

}

А теперь собственно основной файл настроек (_servers_template), использующийся для всех виртуальных серверов в неизменном виде:

index index.php index.html;

 

location / {

 

# стили, скрипты и XML‑файлы

location ~* ^.+\.(css|js|xml)$ {

 

# вот для этого и делались заранее архивированные .gz версии

# css и js файлов. Nginx не будет тратить время и сжимать их каждый раз

# заново, а просто отдаст уже готовые архивы, если браузер клиента может

# их принять

gzip_static on;

expires 1y;

}

 

# несуществующие файлы html и папки отправляем на бэкенд

if (!‑e $request_filename ) {

rewrite ^/(.*)$ /index.php ;

}

 

# проксируем все запросы к PHP‑файлам на FCGI бэкенд

location ~* \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include _fastcgi_params;

}

 

# картинки

location ~* ^.+\.(bmp|gif|jpg|jpeg|ico|png|swf|tiff)$ {

expires 1y;

}

 

# файлы

location ~* ^.+\.(bz2|dmg|gz|gzip|rar|tar|zip)$ {

expires 1y;

}

 

# другие статические файлы

location ~* ^.+\.(pdf|txt)$ {

expires 1y;

}

}

Обычно nginx собирается без модуля статического сжатия, поэтому при его сборке надо указать опцию ‑‑with‑http_gzip_static_module – без этого gzip_static не заработает, и серверу придется сжимать файлы каждый раз заново. Также надо иметь в виду, что указанная конфигурация приведена для версии 0.7+.

 








Дата добавления: 2015-05-19; просмотров: 658;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.