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.

Reply via email to