memcached在winginx上不工作

memcached在winginx上不工作,nginx,memcached,httpserver,winginx,Nginx,Memcached,Httpserver,Winginx,我计划在Windows7上试用memcached和winginx。我当前有以下配置: location / { root home/$host/public_html/static; try_files $uri @def; } location @def { proxy_pass http://127.0.0.1:4711; } locat

我计划在Windows7上试用memcached和winginx。我当前有以下配置:

        location / {
            root home/$host/public_html/static;
            try_files $uri @def;
        }

        location @def {
            proxy_pass http://127.0.0.1:4711;
        }

        location @xyz {
            set $memcached_key $uri;
        #   memcached_pass     http://127.0.0.1:11211;
            default_type       text/html;
            error_page         404 = @fallback;
        }

        location @fallback {
            proxy_pass http://127.0.0.1:4711;
        }
正如您所看到的,memcached_pass被注释掉了,如果我取消注释它,那么在尝试访问nginx服务器上的任何内容时会出现连接错误。location@xyz指令未使用,不应破坏任何内容


感谢您的帮助。

尝试更换
http://127.0.0.1:11211
本地主机:11211

memcached_pass     localhost:11211;

并检查memcached服务器是否正在运行,以确保其正常运行。

您应该从
memcached\u pass
指令中删除
http://

请参阅文档:

在连接错误之后,nginx错误日志中会显示什么?在C:\Winginx/conf/nginx.conf:73中会显示“上游主机无效”请原谅我的无知,但为了检查memcached服务器是否正在运行,我需要发出请求,对吗?用服务器名替换ip没有帮助。您正在运行windows,因此我不确定这是如何实现的,我想最简单的方法是尝试查看是否有应用程序使用
netstat-a-n
在端口11211上侦听,或者使用exe重新启动服务器(我发现一些页面使用了
c:\memcached\memcached.exe-d start
,当然这取决于memcached的安装位置),如果服务器已经在工作,那么它应该失败,并说端口已经被占用,否则它将启动服务器。我使用exe启动了memcached服务器,结果仍然是一样的。当我忽略memcached_pass指令并且一切正常时,memcache admin在端口85可用,它显示了服务器的统计信息但是,在目前的情况下,到端口85的连接也失败了。谢谢!!没有注意到这个错误。