The web2py part you have posted is more than enough. Did you try it? memcache with nginx is an other thing
Paolo 2015-05-20 15:03 GMT+02:00 Lisandro <[email protected]>: > Thank you very much for the clarification. > > Do you know about some example of nginx+uwsgi configuration with memcache? > I've already read this documentation: > http://web2py.com/books/default/chapter/29/13/deployment-recipes#Memcache > http://nginx.org/en/docs/http/ngx_http_memcached_module.html > > I've already created the model file models/0_memcache.py with this code: > > from gluon.contrib.memcache import MemcacheClient > memcache_servers = ['127.0.0.1:11211'] > cache.memcache = MemcacheClient(request, memcache_servers) > cache.ram = cache.disk = cache.memcache > > But I'm not shure about my nginx virtual host configuration. I'm concerned > about which should be the proper way of combining "all the stuff" in the > nginx's virtual server configuration (by "all the stuff" I mean, gzip, > location rules for static content, uwsgi pass, etc). > > This is the actual nginx's virtual server configuration that I've tried, > but it doesn't work (the website works ok, but still no caching). > > server { > listen 80; > server_name dev.demo; > root /home/gonguinguen/medios; > > location ~* ^/(\w+)/static(?:/_[\d]+\.[\d]+\.[\d]+)?/(.*)$ { > alias /home/gonguinguen/medios/applications/$1/static/$2; > expires max; > } > > location ~* ^/(\w+)/static/ { > root /home/gonguinguen/medios/applications; > expires max; > } > > location / { > set $memcached_key "$uri?$args"; > memcached_pass 127.0.0.1:11211; > error_page 404 502 504 = @fallback; > > uwsgi_pass unix:///tmp/medios.socket; > include uwsgi_params; > uwsgi_param UWSGI_SCHEME $scheme; > uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; > } > > location @fallback { > uwsgi_pass unix:///tmp/medios.socket; > } > } > > > > > I don't know where to or how to check if memcache is caching. > > Thanks in advance! > > > > El miércoles, 20 de mayo de 2015, 9:11:58 (UTC-3), Paolo Valleri escribió: >> >> this is the correct behavior in a multi-process/multi-thread environment >> because cache.ram is not shared across them. >> use either memcache or redis to have a global cache >> >> Paolo >> >> On Wednesday, May 20, 2015 at 1:46:48 PM UTC+2, Lisandro wrote: >>> >>> Are there any special consideration about @cache.action in production >>> with nginx + uwsgi? I'm having problems using it, so I made a simple test >>> to show you. >>> >>> In the default welcome application, in default.py controller: >>> >>> @cache.action(time_expire=30, cache_model=cache.ram, session=False, vars >>> =False, public=True) >>> def test(): >>> return request.now.strftime('%H:%M:%S') >>> >>> Now, the first time you hit the /test url, you will see the current >>> time. >>> But if you inmediately hit the url again, you will see the time shown in >>> the first hit. This time will be shown for 30 seconds, that is, the result >>> of the function is cached for 30 seconds. >>> >>> This works ok with web2py's embedded server. >>> However, when I move it to nginx + uwsgi, @cache.action behaves >>> strangely: >>> 1) When I first hit the url, I see the current time. >>> 2) Three seconds after, I hit the url again, and I don't see cached >>> time, instead, I see again the current time. >>> 3) Three or four seconds after, I hit the url again, and I see the first >>> cached time. >>> 4) I keep hitting the url, and it keeps returning previously cached >>> values, randomly. But something is shure: it never returns a value for 30 >>> seconds, the code is executed at least every 4 o 5 seconds. So in a period >>> of 30 seconds, no matter how many times I hit the url, the returned values >>> will always differ 4 o 5 seconds between them. >>> >>> Am I missing something? Is it necesarry to configure some nginx's stuff? >>> I don't think it would be necessary. >>> >> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/P_ezuB93DAY/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

