过期域名预定抢注

 找回密碼
 免费注册

nginx的wp super cache設置

  [複製鏈接]
發表於 2013-6-5 20:38:50 | 顯示全部樓層 |閱讀模式
本帖最後由 sure15 於 2013-6-5 20:41 編輯 0 @7 N4 h9 a4 V7 }) L9 e

& {$ u( J& X% V* e7 [9 D. @首先:利用rewrite規則,實現從nginx層面訪問wp super cache生成的靜態網頁,繞過PHP。

location / {
0 ~7 F" k! f) g* ~          # 如果請求的文件已存在,直接返回6 x  {! D( o4 w( ~' g2 f: I4 y
          if (-f $request_filename) {& ~9 v, n+ i( T" p
              break;
% ^. J! a( D" @4 g  e7 z          }
4 s! D1 E3 h/ S! R% J8 j          set $supercache_file '';
, ~/ F7 r+ d% N' J# N/ y) m          set $supercache_uri $request_uri;( @' q4 d$ T3 \. y
          set $supercache 1;' t# k% X* U1 {' N# E# e
          set $ihttp_host '';. {. `2 C# p, E, E/ J5 E* [% q

8 f7 h# V% O: o& M' _2 a          if ($request_method = POST) {, }* t: H& ~/ ?
              set $supercache 0;
7 l9 ]5 T$ ?$ q& n; S          }
. Z0 i  Z2 E  Q9 [& H, [7 N  N3 q0 ~- N/ o; k: y2 J- ^8 F7 M
          # 僅在訪問文章永久鏈接時使用靜態文件,請求中帶參數則不使用靜態緩存
# S; {9 N/ q: H6 B, q; w. ?! O  O          set $qs 0;6 S0 c5 A6 z# P3 `! K" O
          if ($query_string) {( D0 E* \9 `6 R1 W/ i) X
              set $qs 1;$ i1 Y8 N% m' l
          }
! _/ P3 B' E: X) ^# S
8 }* M" C9 `5 D. v+ O          # 不過從 twitter, facebook, feedburner 鏈接點過來的,總是帶參數,這些訪問仍然可以使用靜態文件; N6 V. p2 v; Q/ b4 r9 T3 O  A
          if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {. R6 o( S1 Z) X  k8 X# }( q
              set $qs 0;
0 O! U" U2 H/ [& F# {! _9 P3 @              set $supercache_uri $document_uri;1 B7 T; {5 W9 o/ H% q8 I
          }
  L! |. W% z  ]1 s; Z8 h  W          #deactivate on high load% a- \* _7 K8 w& ]1 G" @! ], p
          if ($qs = 1) {
1 I, E% g5 B7 {9 x              set $supercache 0;* D9 x# T& \- u- X
          }% ^+ k% w1 `# n( k0 U" K
          # 針對已登錄用戶(發表過評論),可以不靜態化。在訪問量高峰時可註釋掉5 C7 }  `: h# x6 x3 m2 W0 {
          if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
% A/ S2 a3 D# [, l$ X% Z0 G              set $supercache 0;) D5 x+ W7 [! H+ o
          }
- R) D/ L9 x* t; M+ I  @7 y- c
. }7 I3 y8 w3 a5 d- W          # 支持移動設備,訪問移動版本的網頁緩存) n- v( _2 x% \; Y
          if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {6 g% H# V5 |% s2 S
               set $ihttp_host '-mobile';  z' _& Z) ?2 r& e7 g
          }  @% I7 T) D' y- a" o. A

2 J" _" P/ t1 S1 R# n+ i& P          # 指定靜態緩存文件的路徑- w2 m6 y0 e; G
          if ($supercache = 0) {2 ?5 S, |9 C9 M1 F( D2 x# p
               set $supercache_uri '';
( Q: |( Y* E" [/ c0 d. s1 c          }
( W* r5 G  \$ J# _- I          if ($supercache_uri ~ ^(.+)$) {
$ v5 P6 c  j. H  G% `* s              set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;8 @  o2 I/ w6 s) t/ v6 C& W
          }
6 b0 r5 V0 f8 |2 ~& R
; |4 K1 V+ u/ |) l          # 只有當緩存文件存在時,才進行 rewrite
! }+ {; ]5 C& r8 V          if (-f $document_root$supercache_file) {; Q  U2 q0 T; F, R* W
              #rewrite ^(.*)$ $supercache_file break;1 ^; w- U( W; e: H
              rewrite ^ $supercache_file last;
. ?0 D1 p2 d- N) R  q/ L5 N          }0 @0 d% W. s: c; t8 N0 ~
+ ]) j  [- m3 }/ t
          # 所有其他請求,轉給 wordpress 處理
, o0 i; G/ r% o& Z5 i          if (!-e $request_filename) {7 \4 m  P3 B( A8 v8 O) ?  ~
              rewrite . /index.php last;
& ^5 `/ e) B1 P9 |          }
; G3 A3 B! H* P  o8 e0 X}( g" h+ h0 O/ g

9 i' ~5 n9 R7 b) T- }, W

用上面這段規則代替wordpress的規則,即wordpress.conf,或者自己建一個conf,再添加到vhost的conf文件中。

0 }( _7 Z9 d7 g" q
然後: 5 ?: n, L5 x& X/ L: A
會出現這個頁面,不要管,沒事。/ T+ A( J+ U5 q8 W5 c  S
dfsdf.jpg   x1 }  b9 ]6 o1 M: M  Z
「當某頁面有新評論時,只刷新該頁面的緩存。」這個選擇。2 A! P$ M2 X! @8 K  \1 ^  R
「當有新文章或頁面的發佈或更新時清除之前的緩存文件。」這個選擇,每次你發新文章時會生成新的緩存文件。選擇上去。
- J7 T1 F2 P. P1 T/ J/ G/ j* D「緩存重建」和「移動設備支持」可以選擇。
4 z, D' \1 a& j2 q; j. U其它的設置可以自己慢慢摸索。- l% M1 d- R9 s+ {5 q

+ G4 u2 H* Q2 o. e& p; e, H) J8 {% \  N( |2 P- h7 ^7 j6 V0 x2 b
; g4 Z; M  b) i' M; k, O
* a3 _+ I; [# b

2 e& i: h+ \7 J; i% N/ S* k2 G
. n7 s. t4 V6 U9 H: v2 H' o- }1 M* X

評分

參與人數 3點點 +4 收起 理由
baiduisbest + 1 谢谢分享!
a219549 + 1 谢谢分享!
luguokankan + 2 新人鼓励下

查看全部評分

發表於 2013-6-5 21:12:43 | 顯示全部樓層
什麼W3 Total Cache,wp super cache咱都不整,咱不是Apache,裸奔也很爽/ a: e) ]- u( q# P: @: \; h7 Z3 J

點評

apache的wp super cache支持的很完美,不用这么麻烦。  發表於 2013-6-5 23:10
回復 给力 爆菊

使用道具 舉報

發表於 2013-6-5 21:25:40 | 顯示全部樓層
wp super cache這插件配置起來是很麻煩的,適用於獨立主機,動手能力強的站長,謝謝分享( p9 O! {. R# s' y2 D! m4 V% \6 t
回復 给力 爆菊

使用道具 舉報

發表於 2013-6-5 21:27:07 | 顯示全部樓層
感謝分享,這種方法也不錯,不過對不懂代碼的人來說還是有壓力的.7 P" S% V1 P' P; J% S: m4 B! _  w* {

點評

复制一下就行了。。。  發表於 2013-6-5 23:11

評分

參與人數 1點點 +3 收起 理由
心若无尘 + 3 認眞參與

查看全部評分

回復 给力 爆菊

使用道具 舉報

發表於 2013-6-5 21:48:46 | 顯示全部樓層
一篇代碼,看不懂什麼意思,也不知道nginx是什麼意思' u" k4 A/ t) C/ o+ E$ t

點評

nginx和apache是一种东西。  發表於 2013-6-5 23:11
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

4um點基跨境網編創業社區

GMT+8, 2024-11-23 21:54

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表