Odoo负载均衡搭建

Odoo负载均衡搭建

序言

各位做odoo的开发应当都知道, odoo上生产环境一般就两台机器, 一台应用服务器, 一台数据库服务器. pg的扩展还可能通过pgpoll实现, 通过中间件的方式达到应用层无感的读写分离. 但是应用服务器, 应当如何扩展,,我给大家提供一些微小的经验.

架构

在这里插入图片描述

背景

Odoo应用为什么难以扩展, 难以在多台服务器上部署, 主要是在于下两个问题:
Session 问题

  1. List item
  2. ir.attachment存放问题

Session Store

Odoo的Session Store到底是什么东西?其实就是网页的cookie。使用过Odoo的同行都知道Session Store默认存放在 /var/lib/odoo/.local/share/Odoo下,该文件夹下有addons,session,filestore文件夹,session文件夹就是存储session stroe的目录。如果session_id=0089b5460e3ba5bf52b0945d29545e31a0b59a10,那么在应用服务器/var/lib/odoo/.local/share/Odoo/session 就有werk_zeug_0089b5460e3ba5bf52b0945d29545e31a0b59a10.sess 文件。那如果我们搭建负载均衡时多个odoo应用服务器时每个服务器器都会产生session文件怎么处理呢?session的解决方案很简单, 用redis来存放即可, 网上也有解决方案。但是网上很多写的有点难以理解。自己查过网上很多资料,发现网上写的都挺乱的。所以我自己整理了一下。
simle_redis
通过下载smile_redis_session_store模块后。在odoo配置文件中配置如下,主要配置是odoo启动是加载该模块,然后就是redis的配置
在这里插入图片描述

ir.attachment

odoo提供了附件的功能, 用以存放图片, js, css等静态文件. odoo默认使用的包括res.partner模型的image字段, 各种编译之后的scss.css文件, 以及压缩之后的 web.assets_common.js, web.assets_backend.js等js文件. 存储方式都是在db的 ir_attachment 表的 store_fname 字段中存放文件路径.

如果odoo应用程序部署在两台机器上, data_dir的读取问题是无法避免的.也就是说一个Odoo应用能找到对应的附件, 另一台服务器上的Odoo就只能返回file not exists

那应该怎么解决呢?在网上找了很多资料,发现又是需要改源码又是需要配置nginx的。感觉几麻烦又耗时。不过我们公司的理念就是能用钱解决的问题都不是问题。当然了原理还是要懂的,私下倒腾倒腾也挺有感觉。那用钱怎么解决呢?那就要介绍阿里云的文件存储(NAS)什么是NAS呢,这里就不多说。各位可以自行了解。https://help.aliyun.com/document_detail/27518.html?spm=a2c4g.11186623.6.542.3f597424ZcFMRG

通过购买阿里云的文件存储服务呢?在购买应用服务器时把购买好的NAS挂载到应用服务器就好了。(如果是多台应用的话也是同样才做)如下图
在这里插入图片描述

添加完后我们远程到应用服务器适用df -h 查看挂载情况,如下图:
在这里插入图片描述

挂载成功以后,修改odoo配置文件,把data_dir存放目录修改到我们的NAS目录下就完成了。如下图:
在这里插入图片描述

以上就是Odoo负载均衡的搭建,以上架构本人都是使用阿里云的服务。例如: 负载均衡、云数据库、Redis 。并没有过多配置,如果是需要自行在自己服务器安装。以下是一些基本的配置大家可以参考一下。

举例:

192.168.1.1(nginx代理服务器)

192.168.1.2(odoo应用服务器一)

192.168.1.3(odoo应用服务器二)

192.168.1.4(postgresql服务器)

192.168.1.5(redis服务器)

Nginx配置:

以下是nginx代理服务器配置,仅供参考。更多加权轮询算法各位自行了解
在这里插入图片描述

odoo应用服务器配置

首先先安装Python-redis,版本根据odoo版本安装
sudo apt install python3-redis

odoo配置文件
以下是odoo配置文件配置,仅供参考:更多配置参数自行了解)
在这里插入图片描述

Postgresql

安装Postgresql
sudo apt install postgresql postgresql-contrib

修改配置文件pg_hba.conf 添加允许访问。如下图:
在这里插入图片描述

修改配置文件postgresql.conf 修改监听端口。如下图
在这里插入图片描述

创建用户给odoo连接访问

sudo -i -u postgres

psql

create user username with password ‘123456’;

创建完用户以后呢这是当前用户是没有任务权限的,所以需要给username授予权限

alter role username createdb;

Redis

安装Redis(安装方法自行了解)
配置redis允许远程连接以及需要密码验证
配置允许远程连接

在这里插入图片描述

配置密码认证
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值