Odoo14: 多线程端口没有起来

目录

问题背景:

具体问题:

问题排查:

1.odoo.conf配置文件多线程配置

2.nginx配置文件,参考以下:

3.检查防火墙多线程端口8072是否开启

后续


问题背景:

nginx相关已配置,odoo14版本

具体问题:

F12 查看longpolling/poll请求失败

nginx日志报错如下

2022/12/23 10:29:12 [error] 21334#21334: *24646 connect() failed (111: Connection refused) while connecting to upstream, client: 此处是地址, server: 此处是地址, request: "POST /longpolling/poll HTTP/1.1", upstream: "http://127.0.0.1:8072/longpolling/poll", host: "此处是地址:8069", referrer: "http://47.97.219.8:8069/web",up stream

问题排查:

多线程断口没起来原因有很多,从以下几个方面排查

1.odoo.conf配置文件多线程配置

  1. longpolling_port = 8072  # 多线程端口号
  2. workers = 2  # workers配置需大于0具体配多少需要根据服务器配置计算得出
  3. proxy_mode = True  # 是否使用反向代理模式(这个好像影响不大,保险起见建议配上)
  4. 修改后记得重启odoo服务

2.nginx配置文件,参考以下:

        一般路径我会配在 /etc/nginx/sites-enabled 文件命名odoo.conf

server{
        listen 8069;    #监听80端口,可以改成其他端口外网9090
        server_name  ip地址 ;   # 当前服务的域名
        
        location ~* WW_verify_pUadGv6Xh3qTtBJF\.txt {

			root /opt;

			}

        location / { #添加访问目录为/apis的代理配置
                    
				proxy_pass   http://127.0.0.1:8068;   # odoo配置文件http断口
		   		proxy_redirect    off;
		   		#proxy_set_header Host $host;
		   		proxy_set_header Host $host:$server_port;
				proxy_set_header X-Real-IP  $remote_addr;
                   	proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        		}

        location /longpolling {

				proxy_pass  http://127.0.0.1:8072/longpolling; # odoo配置文件多线程端口
				proxy_connect_timeout 3600s;
				proxy_read_timeout 3600s;
				proxy_send_timeout 3600s;
				proxy_redirect    off;
				proxy_set_header Host $host;
				proxy_set_header X-Real-IP $remote_addr;
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			}

}

记得检查nginx.conf文件是否加载了/etc/nginx/sites-enabled

具体目标行内容:    include /etc/nginx/sites-enabled/*;

若之前没配好注释掉了需要打开注释。

修改后记得重启nginx服务

3.检查防火墙多线程端口8072是否开启

查看端口状态: sudo ufw -i:8072(若没有开启则无返回内容)

没有开启执行以下操作

1. 查看本地端口开启情况
 sudo ufw status

开启防火墙的状态下,只有系统允许的端口才能被其他主机访问。

2. 关闭防火墙
sudo ufw disable

防火墙在系统启动时自动禁用
 sudo ufw status

状态:不活动
3. 开启防火墙,允许访问特定端口

 sudo ufw enable

在系统启动时启用和激活防火墙

udo ufw allow 81
规则已添加
规则已添加 (v6)sudo ufw status
状态: 激活

4. 不允许访问特定端口

sudo ufw deny 81规则已更新

规则已更新 (v6)

sudo ufw status
状态: 激活
至 动作 来自
- -- --
80 ALLOW Anywhere
8001 ALLOW Anywhere
81 DENY Anywhere
80 (v6) ALLOW Anywhere (v6)
8001 (v6) ALLOW Anywhere (v6)
81 (v6) DENY Anywhere (v6)

5.简单开启/禁用

sudo ufw allow|deny [service]
sudo ufw allow smtp #允许所有的外部IP访问本机的25/tcp端口(smtp)
sudo ufw deny smtp #禁止外部访问smtp服务
sudo ufw allow 22/tcp #允许所有的外部IP访问本机的22/tcp端口(ssh)
sudo ufw allow 53 #允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 #允许此IP访问所有的本机端口
sudo ufw allow proto tcp from 192.168.1.30 to 192.1681.5 port 65000 #允许从192.168.1.30到192.1681.5的SSH连接删除规则
sudo ufw delete [rule]
sudo ufw delete allow smtp #删除某条规则


4.经历以上若刷新后longpolling仍然有问题

前台访问刷新,执行查看端口监听命令

lsof -i:8072

可以看到nginx那边是没问题的,那问题就是出在odoo这边,结合这里我们知道是odoo的8072没起来,这个也和nginx的错误日志对上了,nginx接收8072进行转发,但是找不到odoo的8072,后只能找的http的端口8069。

我们去查看odoo运行状态

sudo systemctl status odoo-server.service

日志若到gevent这出错,大家有兴趣可以了解一下这个给类.

gevent服务的功能:监听一个longpolling_port端口,实现longpolling长连接
 

 安装指定包版本重启后就没有longpolling问题了

pip3 install psutil===5.9.4

后续

造成连接断开的问题有很多具体原因具体分析

经过询问其他大佬遇到的问题还有我自己碰到的大概有以下:

原因1:磁盘空间不足,内存不足,配置文件错误

可用命令进行排查

# 查看磁盘空间

df -lh

# 查看内存使用

free -lh

原因2:多线程端口没起来,资源配给不足

需要检查多线程配置

检查多线程端口是否开启,ufw -i:多线程端口号

检查nginx配置参数,建议找一个配置成功的参考

odoo配置文件,检查多线程配置参数(找一个配置成功的参考或百度最优配置)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值