目前我在不同的机器上有两个不同的数据库,显示下面的错误。 第一次出现是几个月前,偶尔会出现在原木中,有时会连续多次出现,其他时间一天只出现一次。
只有在proxy_mode = True和/或worker的数量> 0的情况下运行Odoo时才会发生。当代理被禁用时,错误将停止。
Traceback (most recent call last): File "/odoo/odoo-server/odoo/http.py", line 638, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/odoo/odoo-server/odoo/http.py", line 675, in dispatch result = self._call_function(**self.params) File "/odoo/odoo-server/odoo/http.py", line 331, in _call_function return checked_call(self.db, *args, **kwargs) File "/odoo/odoo-server/odoo/service/model.py", line 119, in wrapper return f(dbname, *args, **kwargs) File "/odoo/odoo-server/odoo/http.py", line 324, in checked_call result = self.endpoint(*a, **kw) File "/odoo/odoo-server/odoo/http.py", line 933, in __call__ return self.method(*args, **kw) File "/odoo/odoo-server/odoo/http.py", line 504, in response_wrap response = f(*args, **kw) File "/odoo/odoo-server/addons/bus/controllers/main.py", line 35, in poll raise Exception("bus.Bus unavailable") Exception: bus.Bus unavailable
这是我目前的Nginxconfiguration:
upstream odoo10 { server myipaddres:8069 weight=1 fail_timeout=0; } upstream odoo10-im { server myipaddres:8072 weight=1 fail_timeout=0; } ## http redirects to https ## server { listen 80; server_name mydomain.com; # Strict Transport Security add_header Strict-Transport-Security max-age=2592000; rewrite ^/.*$ https://$host$request_uri? permanent; } server { # server port and name listen 443 ssl; server_name mydomain.com; # Specifies the maximum accepted body size of a client request, # as indicated by the request header Content-Length. client_max_body_size 200m; # add ssl specific settings keepalive_timeout 60; ssl on; ssl_certificate /etc/ssl/nginx/mydomain.crt; ssl_certificate_key /etc/ssl/nginx/mydomain.key; # limit ciphers ssl_ciphers HIGH:!ADH:!MD5; ssl_protocols SSLv3 TLSv1; ssl_prefer_server_ciphers on; # 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; # Let the OpenERP web service know that we're using HTTPS, otherwise # it will generate URL using http:// and not https:// proxy_set_header X-Forwarded-Proto https; # by default, do not forward anything proxy_redirect off; proxy_buffering off; location / { proxy_pass http://odoo10; } location /longpolling { proxy_pass http://odoo10-im; } # cache some static data in memory for 60mins. # under heavy load this should relieve stress on the OpenERP web interface a bit. location /web/static/ { proxy_cache_valid 200 60m; proxy_buffering on; expires 864000; proxy_pass http://odoo10; } }
和etc / odoo-conf有关的性能相关部分:
[options] # ... db_maxconn = 64 limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 limit_time_real_cron = 2400 max_cron_threads = 2 osv_memory_age_limit = 1.0 osv_memory_count_limit = False proxy_mode = True workers = 5 xmlrpc = True xmlrpc_interface = myipaddress netrpc_interface = myipaddress # ...
这是目前运行在数字海洋基础设施,在2GB的内存和2个CPU核心的机器上。