Рецепт конфигурации nginx для UMI.CMS с использованием статического кэша
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
<meta name="title" content="Рецепт конфигурации nginx для UMI.CMS с использованием статического кэша"></meta> | <meta name="title" content="Рецепт конфигурации nginx для UMI.CMS с использованием статического кэша"></meta> | ||
- | [[UMI.CMS]] способна создавать статическую копию сайта: [http://wiki.umisoft.ru/%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_nginx кэширование через nginx]. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что config.ini имеет такие строки: | + | [[UMI.CMS]] способна создавать статическую копию сайта: [http://wiki.umisoft.ru/%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_nginx кэширование через nginx]. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что config.ini UMI.CMS имеет такие строки: |
:<nowiki>[includes]</nowiki> | :<nowiki>[includes]</nowiki> | ||
:static.system-cache = /home/{{hl|ваш_логин}}/www/site<N>/public_html/sys-temp/static-cache | :static.system-cache = /home/{{hl|ваш_логин}}/www/site<N>/public_html/sys-temp/static-cache |
Версия 13:42, 31 июля 2012
UMI.CMS способна создавать статическую копию сайта: кэширование через nginx. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что config.ini UMI.CMS имеет такие строки:
- [includes]
- static.system-cache = /home/ваш_логин/www/site<N>/public_html/sys-temp/static-cache
- [cache]
- static.enabled = "1"
- static.mode = "nginx"
Так выглядит конфигурация nginx сайта для хостинга:
# конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один" # конфигурация обеспечивает работу со специальным кэшированием UMI.CMS # http://wiki.umisoft.ru/кэширование_через_nginx # # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам server { listen 192.168.0.1:80; # IP-адрес сервера proxy_buffer_size 8k; # параметр изменяется в панели управления client_max_body_size 16m; # параметр изменяется в панели управления client_body_buffer_size 512k; # кэш имён файлов для disable_symlinks open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; # имена сайта server_name example.com; server_name www.example.com # отключение лишних журналов access_log off; log_not_found off; # корневая папка для статических файлов root /home/username/www/site1/public_html; index index.html; # запрет символьных ссылок на "чужие" файлы # если файл находится внутри папки /home/username/www/site1/public_html , # то эту часть не проверять по соображением производительности disable_symlinks if_not_owner from=/home/username/www/site1/public_html; # обработать запрос, не соответствующий уточнениям ниже location / { access_log /home/username/www/site1/logs/nginx-access.log; # кодировка прописана во избежании ситуаций, когда отдаваемые nginx файлы .html интерпретируется # браузером в соответствии с его настройкой charset utf-8; source_charset utf-8; # не смотреть в кэше, если метод запроса POST или есть аргументы, или пользователь залогинен error_page 412 = @apache; if ($request_method = 'POST') { return 412; } if ($is_args = '?') { return 412; } if ($cookie_umicms_session) { return 412; } # переопределить корень сайта на папку статического кэша # попытаться воспользоваться им root /home/username/www/site1/public_html/sys-temp/static-cache/$host/; try_files $uri/index.html @apache; } # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте location ~ /\.svn { deny all; } location ~ /\.git { deny all; } location ~ /\.hg { deny all; } # запретить доступ к файлам .htaccess и .htpasswd location ~ /\.ht { deny all; } # обрабатывать запросы к админке веб-сервером apache location ~* ^/admin { error_page 412 = @apache; return 412; } # обрабатывать php-файлы веб-сервером apache location ~* \.php$ { error_page 412 = @apache; return 412; } # попытаться отдать файл с одним из расширений напрямую минуя apache location ~* \.(swf|zip|rar|arj|cab|exe|dll|ico|jpg|jpeg|gif|\ bmp|png|mp3|avi|mov|mpg|mpeg|\ amr|mmf|wml|wbmp|mid|midi|3gp|css|js|html|htm|txt)$ { access_log /home/username/www/site1/logs/nginx-access.log; charset utf-8; source_charset utf-8; try_files $uri @apache; } # передать запрос к apache location @apache { proxy_pass http://127.0.0.1:11111; } }