阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 5547阅读
  • 1回复

Windows Server 也能用 Nginx+Redis Cache 实现内存级缓存

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 linanxiaoxiao 设置为精华(2016-09-05) —
前言 Pqtk1=U  
CBrC   
$[*QsU%%  
在用 Nginx+Redis Cache 给 WordPress  提速 中在 Linux 系统上借助 Openresty 默认集成的拓展实现了 Nginx —— SRcache 拓展 —— Redis 的快速响应,其实我们在 Win 下借助 Openresty 依旧可以实现这个步骤! >69-[#P!  
首先,因为有 Upupw 的 WNMP(Win + Nginx + MariaDB + PHP7 + Redis)的一键包和 Openresty 的 Win.32 包,所以实现这些都并不复杂,至少最难的部分已经有人帮我们搞定了。 K K_  
<} BuU!  
内容 7/>#yR  
;NJx9)7<  
upupw +~{Honj[  
[(kC/W)!  
5?=haGn  
一、进入 www.upupw.net/Nginx/ 下,我们选择己所需要的对应 PHP 版本的包下载,一般来说,选择 PHP7 64位的最好啦(前提是你的系统是 64 位)。然后进入下载,解压后即可。 l =X6m(  
提示:记得先安装 .net 3.5 库!,然后也不要运行! m~;}8ObQE  
二、备份 upupw 目录下的 Nginx\conf\下的所有文件,切记,一定要备份。 rQLl[a  
E/:mO~1< c  
Openresty 8TH fFL  
a@ v}j&  
一、进入 openresty.org/cn/download.html下,下载 Win32 字眼的包即可,例如:openresty.org/download/openresty-1.11.2.1-win32.zip ^Q9;ro*;ck  
二、解压包内所有的文件都解压到 upupw 目录下的 Nginx\ 替换原有的文件 cqSo%a2  
三、将之前备份的 的 Nginx\conf\下的所有文件重新恢复好。 OC5\3H  
5z=.Z\M`8  
启动 BufXnMh.  
S9mcThcZ  
41XS/# M$*  
然后,我们就可以运行 upupw.exe 文件了,输入 s1 启动全部服务即可。 *2^+QKDG  
这时候,我们在命令提示符里输入如下,就可以看到 Nginx 是不是 Openresty,和有没有我们所需的 Srcache 拓展了 hVe39BBtO  
  1. Microsoft Windows [版本 10.0.10240]
  2. (c) 2015 Microsoft Corporation. All rights reserved.
  3. C:\Windows\system32>cd C:\mf8.biz\UPUPW\Nginx
  4. C:\mf8.biz\UPUPW\Nginx>Nginx -V
  5. nginx version: openresty/1.11.2.1
  6. built by gcc 4.9.3 (GCC)
  7. built with OpenSSL 1.0.2e 3 Dec 2015
  8. TLS SNI support enabled
  9. configure arguments: --prefix=. --with-cc-opt='-O2 -DFD_SETSIZE=1024' --add-module=../ngx_devel_kit-0.3.0 --add-module=../echo-nginx-module-0.59 --add-module=../xss-nginx-module-0.05 --add-module=../ngx_coolkit-0.2rc3 --add-module=../set-misc-nginx-module-0.30 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.05 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.5 --add-module=../ngx_lua_upstream-0.05 --add-module=../headers-more-nginx-module-0.30 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.17 --add-module=../redis2-nginx-module-0.13 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.14 --add-module=../rds-csv-nginx-module-0.07 --with-cc=gcc --with-ipv6 --sbin-path=nginx.exe --with-ipv6 --with-pcre-jit --with-http_stub_status_module --with-http_realip_module --with-stream --with-stream_ssl_module --with-http_addition_module --with-http_sub_module --with-pcre=/c/agentzh/openresty-1.11.2.1/objs/lib/pcre-8.38 --with-zlib=/c/agentzh/openresty-1.11.2.1/objs/lib/zlib-1.2.8 --with-openssl=/c/agentzh/openresty-1.11.2.1/objs/lib/openssl-1.0.2e --with-select_module --with-http_ssl_module
]Dd}^khv  
bZ-_Q  
配置 P ?A:0a  
T? e(m  
( C~ u.  
如何添加虚拟主机这里就不讲了,具体可以参考 upupw 官网的教程。这里介绍一下,如何添加对应的规则。 ?qJt4Om  
修改 Nginx\conf 下的 vhost.conf 文件。 [~Vj(H=KwI  
QJ^'Uyfdn  
$)v`roDD.  
这是在一个虚拟主机里的配置信息,可以参考一下: 'i;/?'!W6  
MY w3+B+Jj  
\ 3XG8J  
  1. upstream redis {
  2. server 127.0.0.1:6379;
  3. keepalive 512;
  4. }
  5. server {
  6. listen 80;
  7. server_name test1.mf8.biz alias ;
  8. location / {
  9. root C:/mf8.biz/UPUPW/vhosts/test.mf8.biz;
  10. index index.html index.htm default.html default.htm index.php default.php app.php u.php;
  11. include C:/mf8.biz/UPUPW/vhosts/test.mf8.biz/up-*.conf;
  12. }
  13. autoindex off;
  14. include advanced_settings.conf;
  15. #include expires.conf;
  16. location ~* .*\/(p_w_upload|p_w_uploads|uploadfiles|avatar)\/.*\.(php|PHP7|phps|asp|aspx|jsp)$ {
  17. deny all;
  18. }
  19. set $skip_cache 0;
  20. if ($request_method = POST) {
  21. set $skip_cache 1;
  22. }
  23. if ($query_string != "") {
  24. set $skip_cache 1;
  25. }
  26. if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
  27. set $skip_cache 1;
  28. }
  29. if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
  30. set $skip_cache 1;
  31. }
  32. location /redis-fetch {
  33. internal ;
  34. set $redis_key $args;
  35. redis_pass redis;
  36. }
  37. location /redis-store {
  38. internal ;
  39. set_unescape_uri $key $arg_key ;
  40. redis2_query set $key $echo_request_body;
  41. redis2_query expire $key 14400;
  42. redis2_pass redis;
  43. }
  44. location ~ .*\.(php|php5)?$ {
  45. set $key "nginx-cache:$scheme$request_method$host$request_uri";
  46. try_files $uri =404;
  47. srcache_fetch_skip $skip_cache;
  48. srcache_store_skip $skip_cache;
  49. srcache_response_cache_control off;
  50. set_escape_uri $escaped_key $key;
  51. srcache_fetch GET /redis-fetch $key;
  52. srcache_store PUT /redis-store key=$escaped_key;
  53. more_set_headers 'X-Cache $srcache_fetch_status';
  54. more_set_headers 'X-Store $srcache_store_status';
  55. #fastcgi_pass remote_php_ip:9000;
  56. fastcgi_pass bakend;
  57. fastcgi_pass bakend;
  58. fastcgi_index index.php;
  59. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  60. fastcgi_param PATH_INFO $fastcgi_path_info;
  61. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  62. include fastcgi.conf;
  63. }
  64. }
  65. #server test.mf8.biz end}
重启 Nginx 即可。 <_ruVy0]  
I ]HP  
Usl963A#'F  
然后我们只需要安装 nginx-helper 插件就可以实现 WP 写入 redis 了! kdW$>Jqb  
k/,7FDO?m  
`P *wz<  

w^Atd|~gi  
C;\R 62'  
Windows Server 安装 Redis,请参考:https://yq.aliyun.com/articles/6396 Q`)iy/1M  
Linux 版请参考:https://bbs.aliyun.com/read/290642.html p6AF16*f0  
!e?2 x@J  
svRYdInBNu  
原创文章转载请注明:转载自:https://www.mf8.biz/win-nginx-redis-cache-make-wordpress-fast/ H aA2y  
[ 此帖被ivmmff在2016-09-05 11:51重新编辑 ]
级别: 论坛版主
发帖
3617
云币
9421
只看该作者 沙发  发表于: 2016-09-06
沙发
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 73 + 2 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)