Конфиг nginx под WP Super Cache

fakelamer
На сайте с 22.05.2009
Offline
25
1999

Здравствуйте, так как на офф сайте nginx видимо людей не много, которые в этом разбираются, пишу здесь. Думаю на форуме есть вебмастера, которые используют связку nginx + wordpress и знают, что плагин WP Super Cache не работает без доп настроек конфига nginx. Нашел в инете решение типа такого, который нужно вставить в location / :

if (-f $request_filename) {

break;
}

set $supercache_file '';
set $supercache_uri $request_uri;

if ($request_method = POST) {
set $supercache_uri '';
}
if ($query_string) {
set $supercache_uri '';
}
if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache_uri '';
}
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;
}
if (-f $document_root$supercache_file) {
rewrite ^(.*)$ $supercache_file break;
}

После вставки получаю ошибку 500. Мой дефолтный конфиг выглядит так:

server {

listen мой_айпи:80;
server_name мой_домен www.мой_домен;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://мой_айпи:8080;
proxy_redirect http://мой_домен:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://мой_айпи:8080;
proxy_redirect http://мой_айпи:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;

}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /мой_путь;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://мой_айпи:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}

Кто сталкивался, помогите правильно вставить код, тот что выше в конфиг nginx (тот что ниже :) )

Andreyka
На сайте с 19.02.2005
Offline
822
#1

Ну и нафига суперкеш от wp, если nginx сам по себе умеет кешировать на порядок лучше?

Не стоит плодить сущности без необходимости
fakelamer
На сайте с 22.05.2009
Offline
25
#2

Super Cache выдает полную статику (html) + сжимает страницу, насколько мне известно, nginx умеет делать только второе.

[Удален]
#3
fakelamer:
Super Cache выдает полную статику (html) + сжимает страницу, насколько мне известно, nginx умеет делать только второе.

А насколько мне известно nginx и первое будет делать намного лучше, чем ваш модуль ВОРДПРЕССА...

iamsens
На сайте с 26.08.2009
Offline
115
#4

хм, мне казалось что этот модуль ставят что б убрать нагрузку на БД и скрипты или как?

V
На сайте с 14.04.2007
Offline
316
#5

Ставьте родное кеширование nginx. На 17 тысячах хостах WordPress сайта показало себя просто отлично.

R
На сайте с 14.02.2010
Offline
77
#6

тот код не нужно никуда вставлять из-за его кривизны. можно сделать как-то так -


location / {
try_files $uri $uri/ @cache;
}

location @cache {
if ( $request_method !~ ^(GET|HEAD)$ ) { return 405; }
if ($http_cookie ~ "comment_author_|wordpress|wp-postpass_") { return 405; }
error_page 405 = @wp;
add_header Expires "Tue, 24 Jan 1984 08:00:00 GMT";
add_header Cache-Control "must-revalidate, post-check=0, pre-check=0";
add_header X-Header "Wordpress Supercache x.xx";
charset utf-8;
try_files /wp-content/cache/supercache/$http_host/${uri}index.html; @wp;
}

location @wp {
try_files $uri /index.php?$uri;
}

и по аналогии для изображений, скриптов и всего прочего

но вам это мало поможет как я понял. лучше используйте плагин file-cache - он не требует каких-либо реврайтов вообще

еще лучше, как тут уже сказали, кешировать средствами nginx, если у вас конечно контент не обновляется каждые 10сек...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий