解决odoo开启workers后bus.bus的问题

问题原因:

workers > 0 后会有很多线程在8069端口上,几个cron线程8069(max-cron-threads)。一个gevent线程在端口8072上(longpolling-port)。这里的问题就在8072上,web会用8069请求longpolling。所以http出错。

exception: bus.bus unavailable

解决思路:

安装返向代理,用http://host:80代理 http://localhost:8069/ 和 http://localhost:8072/longpolling即可

可以直接在docker里搞个nginx镜像,反向代理推荐nginx,好用不多说

附1 nginx 的conf 文件 :

upstream odooapp {

server 10.91.8.62:8069;

}

#upstream odoolongpolling {

# server 10.91.8.62:8072/longpolling;

#}

server {

listen 80;

server_name localhost;

client_max_body_size 1G;

access_log /var/log/nginx/local.log main;

location / {

proxy_connect_timeout 3600s;

proxy_read_timeout 3600s;

proxy_send_timeout 3600s;

send_timeout 3600;

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://odooapp;

}

location /longpolling/ {

proxy_connect_timeout 3600s;

proxy_read_timeout 3600s;

proxy_send_timeout 3600s;

send_timeout 3600;

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#proxy_pass http://odoolongpolling;

proxy_pass http://10.91.8.62:8072/longpolling/;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

client_header_buffer_size 512k;

large_client_header_buffers 4 512k;

}

附2  docker-compose 文件:

version: '2'

services:

nginx:

image: nginx:latest

ports:

- "80:80"

volumes:

- ./conf:/etc/nginx/conf.d

- ./logs:/var/log/nginx

restart: always

发布了5 篇原创文章 · 获赞 1 · 访问量 129

猜你喜欢

转载自blog.csdn.net/callmesss/article/details/105065530