Odoo adalah aplikasi bisnis all-in-one paling populer di dunia. Ini menawarkan berbagai aplikasi bisnis termasuk CRM, situs web, e-Commerce, billing, akuntansi, manufaktur, gudang, manajemen proyek, inventaris, dan banyak lagi, semuanya terintegrasi menjadi satu software.

Odoo hadir dengan web server bawaan, tetapi dalam kebanyakan kasus disarankan untuk memiliki reverse proxy di depan web server yang akan bertindak sebagai perantara antara klien dan Odoo server.

Panduan ini memberikan instruksi tentang cara menggunakan Nginx sebagai SSL termination dan reverse proxy ke Odoo.

Prasyarat

Pastikan telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:

  • Odoo telah terinstall di mesin, jika belum, dapat menemukan instruksi di sini.
  • Memiliki nama domain yang menunjuk ke instalasi Odoo. Pada artikel ini kita akan menggunakan odoo.example.com.
  • Telah menginstal Nginx, jika tidak silahkan periksa panduan ini.
  • Memiliki sertifikat SSL yang diinstal untuk domain. Anda dapat menginstal sertifikat SSL gratis Let’s Encrypt dengan mengikuti panduan ini.

Konfigurasikan Nginx sebagai Reverse Proxy

Menggunakan reverse proxy memberi banyak manfaat seperti Load Balancing, SSL Termination, Caching, Compression,, Menyajikan Konten Statis dan banyak lagi.

Dalam contoh ini kita akan mengkonfigurasi Pengakhiran SSL, pengalihan HTTP ke HTTPS, menyimpan file statis dan mengaktifkan kompresi GZip.

Di bawah ini adalah contoh file konfigurasi nginx (server block) yang dapat Anda gunakan untuk instalasi Odoo Anda. Semua permintaan HTTP akan dialihkan ke HTTPS.

Buka teks editor dan buat file berikut:

sudo nano /etc/nginx/sites-enabled/odoo.example.com
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoo-chat {
 server 127.0.0.1:8072;
}

server {
    server_name odoo.example.com;
    return 301 https://odoo.example.com$request_uri;
}

server {
   listen 443 ssl http2;
   server_name odoo.example.com;

   ssl_certificate /path/to/signed_cert_plus_intermediates;
   ssl_certificate_key /path/to/private_key;
   ssl_session_timeout 1d;
   ssl_session_cache shared:SSL:50m;
   ssl_session_tickets off;

   ssl_dhparam /path/to/dhparam.pem;

   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
   ssl_prefer_server_ciphers on;

   add_header Strict-Transport-Security max-age=15768000;

   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
   resolver 8.8.8.8 8.8.4.4;

   access_log /var/log/nginx/odoo.access.log;
   error_log /var/log/nginx/odoo.error.log;

   proxy_read_timeout 720s;
   proxy_connect_timeout 720s;
   proxy_send_timeout 720s;
   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;

   location / {
     proxy_redirect off;
     proxy_pass http://odoo;
   }

   location /longpolling {
       proxy_pass http://odoo-chat;
   }

   location ~* /web/static/ {
       proxy_cache_valid 200 90m;
       proxy_buffering    on;
       expires 864000;
       proxy_pass http://odoo;
  }

  # gzip
  gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
  gzip on;
}

Jangan lupa ganti odoo.example.com dengan domain Odoo milik Anda dan tetapkan jalur yang benar untuk file sertifikat SSL.

Setelah selesai, simpan file dan restart Nginx service dengan:

sudo systemctl restart nginx

Ubah Binding Interface Odoo

Langkah ini opsional, tetapi dengan melakukan metode ini akan membuat lapisan keamanan yang semakin baik.

Secara default, server Odoo listen pada port 8069 di semua interface. Jika ingin menonaktifkan akses langsung ke instance Odoo Anda, buka file konfigurasi Odoo dan tambahkan dua baris berikut di akhir file:

sudo nano /etc/odoo.conf
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Simpan file konfigurasi dan restart Odoo server agar perubahan diterapkan:

systemctl restart odoo

Kesimpulan

Dalam tutorial ini Anda belajar cara mengkonfigurasi Nginx sebagai Proxy ke aplikasi Odoo. Anda juga dapat membaca tentang Cara Mengatur Backup Otomatis Odoo .