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 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.