NGINX and wrong memcached output
Jakub
lists at ruby-forum.com
Sun Apr 22 16:48:06 UTC 2012
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 zU0‚=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/.
More information about the nginx
mailing list