官方參考Nginx 配置Wordpress wp Super Cache緩存插件 nginx服務器沒法開啓wp Super Cache的Mod_Rewrite緩存模式?額,就下面文章來教你吧。 首先介紹下今天的主角:
Nginx
是俄羅斯開發的高性能反向代理服務器。特色是佔有內存少,併發能力強,對於靜態頁面的處理效率已遠超同類產品。在國內各大互聯網公司也在使用,好比 新浪、網易、 騰訊 等。
WP Super Cache
wordpress官方打造的高速緩存插件,爲wordpress生成靜態的html文件。 內置的豐富選項也能夠方便咱們的平常管理。好比緩存文件的列表。緩存權限配置等等。 提供的緩存方式有3種:Mod_Rewrite、PHP、Legacy caching 好了。介紹完畢。下面就是如何對nginx進行配置使咱們的wordpress在nginx上使用WP Super Cache的Mod_Rewrite模式。 英語好的同窗能夠先打開這篇文章看一下:[weblink url="http://codex.wordpress.org/Nginx#WP_Super_Cache_Rules"]wordpress-nginx設置[/weblink]。 不看也不要緊。看我接下來的介紹就ok! 我這裏的服務器環境:centos5.9+php5.5+nginx1.2.7
首先在wordpress下安裝wp Super Cache
我這裏用的是當前最新版本1.4版本的 下載地址:[weblink url="http://wordpress.org/plugins/wp-super-cache/download/"]wp Super Cache[/weblink]; 下載完成以後直接丟到/wp-content/plugins/這個目錄下面; 這個時候,啓用緩存,選擇Mod_Rewrite模式。會提示出信息
Mod rewrite 模塊可能未安裝! 貌似 mod_rewrite 模塊還沒有安裝。也許狀況並非這樣,尤爲是當您不使用 Apache 做爲服務器程序的時候。請檢查 mod_rewrite 模塊是否被加載。這對於 Super Cache 的靜態文件的調用是必需的。不過您可使用 PHP 緩存模式或者傳統模式運行本插件。
重寫規則必須被更新 插件須要的重寫規則已被更改或者缺失。 滾動查看高級選項卡,找到並點擊 更新 Mod_Rewrite 規則 按鈕。
接下來咱們須要作的是修改nginx重寫的規則
# WP Super Cache 設置.
# Designed to be included from a 'wordpress-ms-...' configuration file.
set $cache_uri $request_uri;
# POST 的請求和帶參數的請求都經過php處理
if ($request_method = POST) {
set $cache_uri 'null cache';
}
if ($query_string != "") {
set $cache_uri 'null cache';
}
# 如下文件不緩存
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $cache_uri 'null cache';
}
#對於已登陸用戶不緩存
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
set $cache_uri 'null cache';
}
# 當其餘鏈接訪問Wordpress的時候經過下面的路徑找到緩存文件的地址,訪問緩存頁面
location / {
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php?$args ;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; }
# Cache static files for as long as possible
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
expires max; log_not_found off; access_log off;
}
[warning] 這裏有個問題須要注意下。個人wordpress重寫規則文件是單獨獨立出來的。在網站的配置文件中引入: server { listen 80; server_name www.xxku.net xxku.net; index index.html index.htm index.php; root /home/wwwroot/xxku; include wordpress-wp-super-cache.conf; ......省略...... [/warning] 當咱們設置好了之後。須要查看一下nginx的配置文件是否正確。
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
出現以上命令就說明配置文件沒問題了。 如今咱們刷新當前頁面,右鍵打開源碼。在源碼內看到 這樣一句話就證實WP-Super-Cache 已經應用了。 在WP-Super-Cache設置的那個頁面。出現文章開頭所說的那兩個提示不用理會。 下面列一下我在WP-Super-Cache設置的勾選選項
√ 啓用緩存以便加快訪問。 (推薦) √ mod_rewrite 緩存模式。 (推薦) √ 不要爲已知用戶緩存。 (推薦) √ 不要爲 GET 請求緩存。(地址結尾爲?x=y) √ 當有新文章或頁面的發佈或更新時清除以前的緩存文件。 √ 當某頁面有新評論時,只刷新該頁面的緩存。