Welcome! Log In Create A New Profile

Advanced

NGINX and wrong memcached output

Jakub
April 22, 2012 12:50PM
Hi,

At first let me tell my application was developped under PHP with
Symfony2, but I guess my problem is about nginx and memcached and not
about PHP. As I can see here is good community about nginx and I will be
glad for any help.

I have problem with nginx and memcached responses such as text/html or
application/json. 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 go 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 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
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

--
Posted via http://www.ruby-forum.com/.
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

NGINX and wrong memcached output

Jakub April 22, 2012 12:50PM

Re: NGINX and wrong memcached output

Maxim Dounin April 22, 2012 04:50PM

Re: NGINX and wrong memcached output

Jakub April 22, 2012 06:04PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 124
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready