Nginx and memcached response
Bertrand Paquet
bpaquet at octo.com
Sun Apr 22 17:17:29 UTC 2012
Hi,
Does your application server fill memcached correctly ? May be a binary /
encoding problem when connecting to memcached. Or the content is stored
gzipped ?
Regards
Bertrand
On Sun, Apr 22, 2012 at 19:02, Jakub Škrha <serga at seznam.cz> wrote:
> **
> Hi,
>
> I have problem with nginx and memcached responses such as text/html or
> application/json and I will be glad for any help. Thanks.
>
> My idea is:
> -First request on nginx server (reverse proxy memcached server)
> -Try if I have memcached response (memcached run on same server as
> nginx)
> -If not pass request to application server
> -Application server makes response
> -Stores response in to memcached
> -And for next same request nginx hit response from memcached and return
> to client.
>
> But the problem is, when the application server stores response to
> memcached (data in memcached are stored good and corectly) and NGINX hit
> the request in memcached, but return totaly wrong hashed content.
>
> For example:
> First request, ngingx didnt find response in memcached, pass to
> application server, and here is response ... good and correct JSON.
> ------- Headers
> HTTP/1.0 200 OK
> Date: Sun, 22 Apr 2012 16:13:58 GMT
> Server: Apache/2.2.16 (Debian)
> X-Powered-By: PHP/5.3.3-7+squeeze8
> cache-control: no-cache
> x-debug-token: 4f942e4dee10b
> Content-Length: 476
> Connection: close
> Content-Type: application/json
> -------- Content
>
> [{"id":10,"title":"Cinema","url":"cinema","articles":null},{"id":2,"title":"Computers","url":"computer","articles":null},{"id":8,"title":"Foto","url":"foto","articles":null},{"id":12,"title":"Literature","url":"literature","articles":null},{"id":4,"title":"Music","url":"music","articles":null},{"id":18,"title":"Society","url":"society","articles":null},{"id":16,"title":"Sport","url":"sport","articles":null},{"id":6,"title":"Travelling","url":"travelling","articles":null}]
>
> But for the second request, when NGINX find response in memcached, NGINX
> serves response totaly wrong.
> -------- Headers
> Connection:keep-alive
> Content-Length:164
> Content-Type:application/json
> Date:Sun, 22 Apr 2012 16:17:15 GMT
> Server:nginx/0.7.67
> -------- Content
> xśuÎ1Â0ŕ˙rs+"’UpŇI·ââ)צ$AÄ˙nˇ59¤ßďÝ5o zU 0‚ =uŘZ¨
> ˘űE„cÓ%ćO5ʵ‚ľí“`ĹN͢Ţ}đâ3ĽŹaŐę摆y+)`¶¬«ů…M8ĄH.ŰvJ‡Ő»gďĺ•eĚyÁn•í}
> "§4ď»űDfęŮŠ®ţ®_ß
> ť
>
> With text/html I have exactly the same problem. Do you have anybody any
> idea plese? Here is my nginx configuration:
>
> # nginx virtual host from sites-available linked to sites-enabled
> server {
> listen 80;
> server_name dp-xskrha.local;
> access_log /var/log/nginx/dp-xskrha/access.log;
> error_log /var/log/nginx/dp-xskrha/error.log;
>
> # Static content, images, css, js
> location ~*
> ^.+\.(jpe?g|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|avi|mp3)$
>
> {
> proxy_redirect off;
> proxy_pass http://app.dp-xskrha.local:80;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> proxy_cache dp-xskrha-static;
> roxy_cache_valid 200 10m;
> }
>
> # Model api json
> location /model-api {
> default_type application/json;
> set $memcached_key $uri;
> memcached_pass 127.0.0.1:11211;
> error_page 404 =200 @fallback;
> }
>
> # Dynamic content, all rest uri
> location / {
> default_type text/html;
> charset utf-8;
> set $memcached_key $uri;
> memcached_pass 127.0.0.1:11211;
> error_page 404 =200 @fallback;
> }
>
> # Memcached fallback for proxy pass
> location @fallback {
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> proxy_redirect off;
> proxy_pass http://app.dp-xskrha.local:80;
> }
> }
>
>
> #nginx.conf
> user www-data;
> worker_processes 1;
>
> error_log /var/log/nginx/error.log;
> pid /var/run/nginx.pid;
>
> events {
> worker_connections 1024;
> multi_accept on;
> }
>
> http {
> include /etc/nginx/mime.types;
>
> access_log /var/log/nginx/access.log;
>
> sendfile on;
> tcp_nopush on;
>
> #keepalive_timeout 0;
> keepalive_timeout 65;
> tcp_nodelay on;
>
> gzip on;
> gzip_disable "MSIE [1-6]\.(?!.*SV1)";
>
> # proxy settings
> proxy_cache_path /data/nginx/cache levels=1:2
> keys_zone=dp-xskrha-static:10m
> inactive=24h max_size=1g;
>
> include /etc/nginx/conf.d/*.conf;
> include /etc/nginx/sites-enabled/*;
> }
>
> Thank you very much, for Your response :)
>
> Jacob
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20120422/7414b3aa/attachment-0001.html>
More information about the nginx
mailing list