日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Nginx proxy_cache 使用示例

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx proxy_cache 使用示例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文出處:http://blog.chenlb.com/2010/04/nginx-proxy-cache.html

動(dòng)態(tài)網(wǎng)站使用緩存是很有必要的。前段時(shí)間使用了 nginx proxy_stroe 來(lái)保存靜態(tài)頁(yè)面,以達(dá)到緩存的目的。當(dāng)然 proxy stroe 用來(lái)做緩存是不夠好的方案。

緩存這一塊當(dāng)然還有 squid 之類的獨(dú)立緩存服務(wù)器。如果使用 nginx 為 web 服務(wù)器,還要加個(gè) squid 來(lái)緩存,是覺(jué)得多了一個(gè) http 請(qǐng)求層。幸好 nginx 0.7 有了 proxy_cache 來(lái)做這個(gè)緩存的事。

之前來(lái)有個(gè) ncache 是新浪員工開(kāi)發(fā)的 nginx 模塊(好像只能在 nginx 0.6 中編譯無(wú)運(yùn)行)。已經(jīng)停止維護(hù)了,已經(jīng)被加到 nginx 標(biāo)準(zhǔn)庫(kù)里了。昨天還不知道 proxy_cache 就是 ncache 的功能時(shí),還在努力匹配 ncahce,浪費(fèi)了N多時(shí)間,最終沒(méi)看到可以緩存。后來(lái)嘗試 proxy_cache 才解決,且使用簡(jiǎn)單。

安裝 Nginx 請(qǐng)看:安裝 Nginx 配置負(fù)載均衡,如果沒(méi)有 pcre 庫(kù),可以到http://sourceforge.net/projects/pcre/files/ 下載(我用的是 8.02)。

nginx 0.7.65 默認(rèn)安裝就可以了。

安裝好后開(kāi)始匹配 proxy_cache,先準(zhǔn)備后臺(tái)服務(wù)器的文件,如是 time.jsp,內(nèi)容:

  1. ??
  2. <%=new?java.util.Date()?%>??
<%=new java.util.Date() %>

conf/nginx.conf:

  1. ??
  2. user??nobody; ??
  3. worker_processes??1; ??
  4. error_log??logs/error.log; ??
  5. pid????????logs/nginx.pid; ??
  6. ??
  7. events?{ ??
  8. ????worker_connections??1024; ??
  9. ????use?epoll; ??
  10. } ??
  11. ??
  12. http?{ ??
  13. ????include???????mime.types; ??
  14. ????default_type??application/octet-stream; ??
  15. ??
  16. ????log_format??main??'$remote_addr?-?$remote_user?[$time_local]?"$request"?' ??
  17. ??????????????????????'$status?$body_bytes_sent?"$http_referer"?"$request_body"?' ??
  18. ??????????????????????'"$http_user_agent"?"$http_x_forwarded_for"?"$request_time"'; ??
  19. ??
  20. ????sendfile????????on; ??
  21. ????keepalive_timeout??60; ??
  22. ??
  23. ????proxy_cache_path?/var/cache0?levels=1:2?keys_zone=pnc:100m?inactive=2h?max_size=10g; ??
  24. ????upstream?backend?{ ??
  25. ????????server?192.168.1.2:8080??weight=6; ??
  26. ????????#server?192.168.1.3:8080??weight=4; ??
  27. ????} ??
  28. ??
  29. ????server?{ ??
  30. ????????listen???????80; ??
  31. ????????server_name??localhost; ??
  32. ??
  33. ????????access_log??logs/access.80.log??main; ??
  34. ??
  35. ????????location?/?{ ??
  36. ????????????proxy_cache?pnc; ??
  37. ????????????proxy_temp_path?/var/nginx_temp; ??
  38. ????????????#proxy_cache_key?"$request_uri$request_body"; ??
  39. ????????????#proxy_cache_methods?GET?POST; ??
  40. ????????????proxy_cache_valid?200?304?1m; ??
  41. ????????????proxy_pass?http://backend; ??
  42. ????????} ??
  43. ??
  44. ????????error_page???500?502?503?504??/50x.html; ??
  45. ????????location?=?/50x.html?{ ??
  46. ????????????root???html; ??
  47. ????????} ??
  48. ????} ??
  49. }??

啟動(dòng) nginx 后,打開(kāi)瀏覽器,可以狂刷 Ctrl + F5,可以看到一樣的頁(yè)面。一分鐘后再會(huì)一個(gè)新的頁(yè)面。

是 proxy_cache_valid 200 304 1m; 告訴 nginx 后臺(tái)返回的結(jié)果是 200 或 304 的響應(yīng),用 1m(分鐘)的緩存。

proxy_cache_key 默認(rèn)是 "$scheme$host$request_uri"。

proxy_cache_methods 默認(rèn)是 GET HEAD。

當(dāng)要緩存 post 請(qǐng)求后,要用 proxy_cache_methods POST 來(lái)打開(kāi)。并且 proxy_cache_key 要對(duì),post 的請(qǐng)求 query string 是在請(qǐng)求體內(nèi),所以加 $request_body 作為 key 的一部分。要用 post ,上面匹配去了注釋就可以了。

總結(jié)

以上是生活随笔為你收集整理的Nginx proxy_cache 使用示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。