Nginx (в качестве внешнего интерфейса для Apache) для обслуживания статических файлов WP Super Cache - PullRequest
1 голос
/ 20 мая 2009

В настоящее время я работаю над своим блогом Wordpress, который размещен на VPS.NET VPS с Nginx в качестве внешнего интерфейса для Apache для обслуживания статических файлов, в то время как Apache заботится о PHP в FastCGI. Кажется, это работает отлично, однако мне еще не удалось заставить Nginx также обслуживать файлы WP-SuperCache, что мне бы хотелось для максимальной производительности (я не планирую полностью заменить Apache на Nginx прямо сейчас, потому что у меня есть лицензия Virtualmin и не поддерживает Nginx). Я перепробовал множество правил, найденных здесь и там, но в итоге ни одно из них не сработало, или я что-то упустил. На самом деле, если Apache остановлен, я все равно могу получать изображения, таблицы стилей и javascript, напрямую доставляемые в браузер Nginx. Но если я попытаюсь просматривать блог (страницы наверняка кэшируются WP-SuperCache) с остановленным Apache, все, что я получаю от Nginx - это «502 плохих шлюза». Любые идеи очень приветствуются. Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 27 июля 2009

Nginx может обработать ваш fastCGI. Обычно Apache в комплекте с Nginx стоит своих ресурсов.

Что касается WP Super Cache, если вы создадите новый файл и вставите его, он даст вам и то, и, пока мы об этом, FURLs ...

# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}

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

if ($request_method = POST) {
set $supercache_uri '';
}

# Using pretty permalinks, so bypass the cache for any query string
if ($query_string) {
set $supercache_uri '';
}

if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache_uri '';
}

# if we haven't bypassed the cache, specify our supercache file
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;
}

# only rewrite to the supercache file if it actually exists
if (-f $document_root$supercache_file) {
rewrite ^(.*)$ $supercache_file break;
}

# all other requests go to Wordpress
if (!-e $request_filename) {
rewrite . /index.php last;
}

Теперь перейдите к файлу виртуального хоста или nginx.conf, если вы объединяете свои сайты, и добавьте строку, например ..

# Wordpress WP Super Cache plugin and permalinks.
include /usr/local/nginx/conf/wordpress_params.super_cache;

.. где wordpress_params.super_cache - это то, что вы назвали файлом, который мы создали, и указали путь относительно того, что я показал.

Затем перезапустите Nginx и включите плагин WP Super Cache и, для симпатичных ссылок, добавьте постоянную структуру.


На самом деле есть много информации о том, как правильно установить Nginx, особенно с WordPress и настроить fastCGI. Если хотите, это было бы хорошим началом для вас ...

.. Настройка WordPress на NGINX (FURLs и Cache) - VPS Bible Pt 13

Re. VirtualMin ... Я понимаю, что вы хотите CP, но на самом деле стоимость ресурсов выше, чем стоимость программного обеспечения ... плюс это занимает больше времени, чтобы делать вещи с CP.

В настоящее время я публикую 21 серию VPS Admin, посвященную отсутствию Nginx CP .., честно говоря, это все, что вам нужно.

Учитывая неделю или две, я призываю вас сказать мне, что быстрее или лучше использовать КП:)

0 голосов
/ 20 мая 2009

Кажется глупым запускать Nginx через Apache.

Настройте Nginx для обслуживания самих php и динамических страниц, и у вас будет намного более быстрый сервис, и у вас не возникнет проблема, когда apache умирает и оставляет ваш веб-сервер (Nginx) зависшим.

Если ваша админ-панель не поддерживает это, вы, вероятно, должны в первую очередь использовать apache. Либо делай одно, либо другое, оба просто просят проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...