Setup Odoo IM Live Chat di Multi Processing

tanpa setting ini, IM livechat nggak jalan

vITraining Admin

Kalau Odoo dijalankan dengan mode multi proses (ie workers lebih dari 0) maka aplikasi IM Live chat tidak bisa langsung jalan. Kalau pun jalan, message tidak realtime terkirimkan (harus refresh browser dulu).

Ini karena IM live chat jalan di port longpolling (default nya 8072) dan harus dilakukan proxy redirection untuk semua request yang diawali dengan /longpolling pada port 8072.

Solusinya, kalau pakai multiproses, harus jalankan juga system reverse proxy, bisa pakai Nginx atau Apache. Contoh kasus dibawah ini pakai Nginx.

Jadi, pertama harus install dulu nginx.

# sudo apt-get install nginx

Lalu buat config situs odoo di nginx:

upstream odoo {
  server 127.0.0.1:9069 weight=1 fail_timeout=0;
}
upstream odoo-im {  server 127.0.0.1:8072 weight=1 fail_timeout=0; }

server {  listen 8069;  server_name myserver.com; 
 # increase proxy buffer to handle some OpenERP web requests  proxy_buffers 16 64k;  proxy_buffer_size 128k;  # general proxy settings  # force timeouts if the backend dies  proxy_connect_timeout 600s;  proxy_send_timeout 600s;  proxy_read_timeout 600s;  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
 # set headers  proxy_set_header Host $host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;  proxy_set_header X-Forwarded-Proto http;  # by default do not forward anything  proxy_redirect off;  proxy_buffering off;
 location / {   proxy_pass http://odoo;
 }
 location /longpolling {  proxy_pass http://odoo-im;  }
}

Contoh di atas, kita tidak pakai HTTPS. Nginx bisa sekalian kita gunakan agar odoo diakses lewat HTTPS.

Kita gunakan port default odoo 8069 di nginx supaya secara client tetap pakai port 8069 (nggak tau bahwa sebenarnya dia lewat nginx dulu).

Simpan di file:

/etc/nginx/sites-available/odoo

Masuk ke folder /etc/nginx/sites-enabled dan buat link ke file odoo config supaya enable situsnya

# cd /etc/nginx/sites-enabled
# ln –s ../sites-available/odoo .

Edit file /etc/odoo-server.conf, ganti port default Odoo ke 9069 misalnya, tambahi mode proxy_mode=True dan setting untuk multiproses...

[options]
admin_passwd = yourpasswd
db_host = 192.168.28.99
db_port = False
db_user = odoo
db_password = yourdbpasswd
db_template = template1
addons_path = /opt/odoo/addons
logfile = /var/log/odoo/odoo-server.log
db_maxconn=1000

; multi processing IM
xmlrpc_port = 9069
longpolling_port=8072
proxy_mode=True
workers = 7
limit_memory_hard = 1677721600
limit_memory_soft = 629145600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 2


Jika semua step di atas sudah dilakukan namum IM masih terkendala, misalnya ketika message di ketik tapi nggak muncul relatime di box IM chat, ini rahasianya: pada file: addons/bus/model/bus.py, edit constanta TIMEOUT yang awalnya 50 jadi angka yang lebih besar, misalnya:

# longpolling timeout connection
TIMEOUT = 500


Berhubung sistem messaging IM Live Chat Odoo ini sangat sensitve terhadap waktu, maka sebaiknya Ubuntu server menjalankan Network Time Protocol (NTP) supaya system date server synchron dengan sistem pewaktuan yang akurat di internet.

Materi ini is part of Odoo Advanced Training yang dibuka oleh vitraining.com Klik vitraining.com untuk jaldwa training selengkapnya.