Рецепт конфигурации nginx для WordPress кэширование Super Cache
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
==== Рецепт nginx "WordPress" ==== | ==== Рецепт nginx "WordPress" ==== | ||
+ | [[Cookbook_nginx|Коллекция рецептов nginx нашего хостинга]] | ||
Для [[WordPress]] существует популярное расширение [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache], позволяющее создавать статическую копию страниц сайта. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что Super Cache настроен и работает. | Для [[WordPress]] существует популярное расширение [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache], позволяющее создавать статическую копию страниц сайта. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что Super Cache настроен и работает. |
Текущая версия на 12:23, 1 августа 2012
Рецепт nginx "WordPress"
Коллекция рецептов nginx нашего хостинга
Для WordPress существует популярное расширение WP Super Cache, позволяющее создавать статическую копию страниц сайта. Это позволяет в 10-ки раз ускорить работу сайтов. Предполагается, что Super Cache настроен и работает.
Так выглядит конфигурация nginx сайта для хостинга:
# конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один" # # конфигурация обеспечивает работу со специальным кэшированием WordPress - Super Cache # http://wordpress.org/extend/plugins/wp-super-cache/ # # параметр 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; # правила, задающие путь к закэшированной странице # в отличии от оригинала, здесь учитывается возможность кириллических путей set $supercacheuri ""; set $supercachefile "/home/username/www/site1/public_html/wp-content/cache/supercache/${http_host}${request_uri}index.html"; if (-e $supercachefile) { set $supercacheuri "/wp-content/cache/supercache/${http_host}${request_uri}index.html"; } if ($request_method = POST) { set $supercacheuri ""; } if ($query_string) { set $supercacheuri ""; } if ($http_cookie ~* comment_author_|wordpress_logged_in|wp-postpass_) { set $supercacheuri ""; } if ($http_x_wap_profile) { set $supercacheuri ""; } if ($http_profile) { set $supercacheuri ""; } # не кэшировать для мобильных браузеров if ($http_user_agent ~* (2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hip top|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|Pr oxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod |Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800)) { set $supercacheuri ""; } # не кэшировать для этих браузеров if ($http_user_agent ~* (w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq| ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sa ms|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw |xda\ |xda-)) { set $supercacheuri ""; } # если URI всё-таки есть, сделать внутренний редирект на него if ($supercacheuri) { rewrite ^ $supercacheuri break; } # обработать запрос, не соответствующий уточнениям ниже # учесть наличие закэшированной страницы location / { access_log /home/username/www/site1/logs/nginx-access.log; charset utf-8; source_charset utf-8; try_files $uri $supercacheuri @apache; } # запретить доступ к системным файлам location ~ /\. { deny all; } # запретить доступ к скриптам .php в каталогах, использующихся для заливки файлов location ~* /(?:uploads|files)/.*\.php$ { deny all; } # отдать напрямую favicon.ico location = /favicon.ico { access_log /home/username/www/site1/logs/nginx-access.log; } # отдать напрямую robots.txt location = /robots.txt { allow all; access_log /home/username/www/site1/logs/nginx-access.log; } # попытаться отдать файл с одним из расширений напрямую минуя apache location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { access_log /home/username/www/site1/logs/nginx-access.log; charset utf-8; source_charset utf-8; expires 24h; } # запретить все прямые обращения к несуществующим файлам .php location ~ \.php$ { try_files $uri =404; proxy_pass http://127.0.0.1:11111; } # передать запрос к apache location @apache { proxy_pass http://127.0.0.1:11111; } }