Salta al contenuto principale

Come Configurare NginX Reverse Proxy per Odoo

In questo articolo, ti guiderò attraverso il processo di configurazione di Odoo con NginX come reverse proxy. L'uso di NginX con Odoo è una soluzione efficiente per migliorare le performance e la sicurezza, gestendo al meglio le connessioni sia HTTP che WebSocket.

Configurazione di Odoo

Prima di configurare NginX, è necessario assicurarsi che Odoo sia configurato correttamente per gestire sia le connessioni HTTP che WebSocket. A partire dalla versione 16, Odoo include il supporto per WebSocket, il che significa che questa funzione viene abilitata automaticamente quando si attivano i workers multipli nel file di configurazione di Odoo.

Esempio di configurazione Odoo (`odoo-server.conf`)

[options]
http_port = 8069

# Parallel workers (2 * Cpu Cores + 1)
workers = 9

In questa configurazione, Odoo utilizza la porta 8069 per HTTP e gestisce i worker per ottimizzare il carico su server con più core CPU.

Virtual Host NginX Odoo

Ora che Odoo è configurato, possiamo configurare NginX come reverse proxy. Questo permette a NginX di gestire le richieste HTTP e di inoltrarle a Odoo sulla porta 8069. Inoltre, NginX può gestire le connessioni WebSocket necessarie per alcune funzioni avanzate di Odoo, come le notifiche in tempo reale.

Esempio di configurazione NginX

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

upstream odoo {
    server 127.0.0.1:8069;
}

upstream odoomp {
    server 127.0.0.1:8072;
}

server {
    listen 443 ssl;
    server_name SERVERNAME.TLD;
    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 $scheme;
    location / {
        proxy_pass http://odoo;
        proxy_redirect off;
    }
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }
    # Reindirizza le richieste WebSocket alla porta gevent di Odoo
    location /websocket {
        proxy_redirect off;
        proxy_pass http://odoomp;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

In questo esempio, Odoo utilizza la porta 8069 per gestire il traffico HTTP e la porta 8072 per le connessioni WebSocket. Il server NginX gestisce sia il traffico HTTP che quello WebSocket, migliorando così le prestazioni e semplificando la gestione delle richieste.

Integrazione con SSL

Per garantire una maggiore sicurezza, è essenziale configurare NginX con un certificato SSL. Questo permette di crittografare il traffico tra il client e il server, proteggendo i dati sensibili. Puoi ottenere un certificato SSL gratuito utilizzando Let's Encrypt, integrandolo nella configurazione NginX come mostrato sopra.

FAQ: Domande Frequenti

1. Qual è il vantaggio di usare NginX come reverse proxy per Odoo?

NginX offre una gestione delle risorse più efficiente rispetto ad Apache e permette di gestire connessioni contemporanee con minore utilizzo di CPU e RAM. Questo si traduce in una migliore scalabilità e prestazioni per Odoo.

2. Devo configurare manualmente WebSocket per Odoo?

No, Odoo 16 e versioni successive supportano nativamente WebSocket quando si abilitano più workers. Tuttavia, è necessario configurare correttamente NginX per gestire queste connessioni, come illustrato in questo articolo.

3. Posso usare Let's Encrypt con NginX?

Sì, Let's Encrypt offre certificati SSL gratuiti che possono essere facilmente integrati con NginX. Questo ti permette di crittografare le comunicazioni tra il client e il server senza costi aggiuntivi.

Prova gratis la nostra consulenza tecnica NginX

Ottimizza la tua configurazione di Odoo con il nostro supporto tecnico.

Aggiungi un commento

Comment

  • Elementi HTML permessi: <br> <p> <code class="language-*"> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Solo le immagini ospitate su questo sito possono essere utilizzate nel tag <img>.