Oggi mi son cimentato in alcune ottimizzazioni di odoo legate alla produzione ... che condivido con voi sperando di far cosa gradita.
Prima una doverosa premessa, se installate odoo per usarlo esclusivamente in pochi e dentro la vostra rete privata cio' che leggerete in seguito sarà di poca o nulla utilità ... vi serve ottimizzare postgress (ma di questo ne parleremo in una prossima puntata).
Diverso il discorso se con odoo ci gestite sito web e/o ecommerce ed in generale tutta la parte aperte al pubblico. In questo ultimo caso ottimizzare il carico sui worker odoo è basilare per le prestazioni.
Odoo SA stessa consiglia di ruotare le risorse statiche tramite web-server ma non specifica come
... ecco l'esempio che segue è un possibile approccio al come.
Ingredienti:
1) Odoo
2) Nginx
risultato, non saprei sto ancora a far dei test sul sito di prova (nel senso che fino ad oggi non ci stava
) che trovate in firma ma i primi risultati son incoraggianti.
In parole povere ho configurato nginx in modo tale che restituisca le risorse statiche presenti in odoo, come potete vedere dal file di configurazione che allego in seguito è stato necessario configurare la multipath affinchè il web-server potesse scandire tutte le directory degli addons alla ricerca del file statico. Le risorse vengono indicizzate per velocizzare il successivo recupero.
Se avete domande o curiosità chiedete pure.
Buon divertimento e sperimentazione.
upstream odoo {
server 127.0.0.1:8069 weight=1 fail_timeout=0;
}
upstream odoo-im {
server 127.0.0.1:8072 weight=1 fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ktec.it www.ktec.it;
rewrite ^/.*$ https://$host$request_uri? permanent;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-ktec.it.conf;
include snippets/ssl-params.conf;
server_name _;
location / {
proxy_pass http://odoo;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_buffer_size 128k;
proxy_buffers 16 64k;
proxy_redirect off;
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_set_header X-Forwarded-Proto https;
}
location /longpolling {
proxy_pass http://odoo-im;
}
#odoo static files
location ~* /web/static/ {
root "/opt/odoo/odoo-server/addons/";
try_files $uri $uri/ @adds2;
autoindex on;
}
location @adds2 {
root "/opt/odoo/odoo-server/odoo/addons/";
try_files $uri $uri/ @adds3;
}
location @adds3 {
root "/opt/odoo/custom/addons/";
try_files $uri $uri/ @adds4;
}
location @adds4 {
root "/opt/odoo/filestore/addons/";
try_files $uri $uri/ @adds5;
}
location @adds5 {
root "/opt/odoo/enterprise/addons/";
try_files $uri $uri/ =404;
}
#letsencrypt autorenew location
location ~ /.well-known {
allow all;
}
}