概述 #
本文的目的是解释如何制作CRM应用程序,这对于像这样的公司至关重要 Odoo,高度可扩展。 此外,如何在高可用性中设置它以容忍故障,以及如何加强对其的访问安全性。
什么是高可用性? #
高可用性是系统或组件的质量,可确保高于正常时间段的高水平操作性能(通常为正常运行时间)。
什么是odoo? #
Odoo (又名 OpenERP的)是一个业务开源软件,集成了所有业务需求,包括CRM,计费,会计,网站,仓库和项目管理,制造,库存等等!
配置 RELIANOID 负载均衡器 #
与 RELIANOID 负载均衡器我们可以确保高可用性并为大规模可扩展性做好准备 Odoo 按照以下步骤提供服务。
请注意,要遵循这些说明,将需要安装以下实例 RELIANOID Load Balancer和几个实例 Odoo 应用程序。 此外, PostgreSQL的 在它们之间复制,以确保一致性。
我们将在本文中描述的环境如下所示。

步骤1:创建虚拟IP #
需要在负载均衡器中创建虚拟IP,因为它将是 Odoo 服务。 在我们的例子中,我们将有两个 Odoo 真正的服务器,但您可以根据需要包含但没有任何限制。 要创建一个新的虚拟IP,请从 RELIANOID LB主菜单,选择 设置->接口.

找到要在其下创建虚拟IP的物理接口 行动 点击按钮 添加虚拟网络接口.

键入新虚拟IP的地址和网络掩码,它必须与物理设备位于同一子网中。 单击按钮保存 保存虚拟接口.

步骤2:创建http场 #
服务器场是一组计算机服务器,它们提供服务器功能,显着提高其功能。 所以,通过建立一个农场 Odoo 服务器,我们将提高其性能和可扩展性,这对高可用性至关重要。 为了实现这一目标 管理->农场.

点击 添加新农场 并在新窗口中,选择一个名称和 HTTP 作为个人资料。 我们选择HTTP配置文件是因为它是Web服务的最佳选择,并且需要解析应用程序内容才能在应用程序级别提供持久性。

将显示另外两个选项。 选择在步骤1上创建的虚拟IP和端口(在示例中我们选择80,因为它是HTTP协议的默认值)并单击 已保存 按钮。

有关农场的更多信息,请参阅 管理::农场.
步骤3:添加服务 #
创建服务器场后,我们必须对其进行编辑才能添加新服务。 请点击按钮 编辑农场.

可以编辑服务器场的一些详细信息,现在我们将保留默认值并添加新服务。

在上面的屏幕截图中,找到 添加服务部分,键入服务名称并单击 添加.

现在,我们将保留默认值,并且只会添加后端 Odoo 真正的服务将会运行。 找到后端部分,然后单击添加真实服务器按钮。

包括的IP地址和端口 Odoo 服务(Odoo服务的默认8069),超时和重量,然后单击保存真实服务器。

必须避免服务器换向:如果在会话期间我们从一台服务器跳到另一台服务器,则会导致效率,数据甚至通信丢失。 为了避免这种行为 持久性会话 必须配置选项。 我们将选择按会话ID维护会话,这意味着在会话期间,我们将只连接到一个服务器。
在服务全局参数中,我们现在可以将持久性会话字段更改为 COOKIE:某个饼干 并点击 修改.

插页 SESSION_ID 作为持久性会话标识符并单击 修改.

最后,我们必须通过重新启动服务器场来应用这些更改。
![]()
祝贺您! 您已在高可用性中配置了Odoo。 您可以通过键入来访问它 http://[VIRTUAL_IP]:[PORT] (在我们的例子中 http://192.168.56.200).
步骤4:高级健康检查 #
我们现在将设置服务器监视器,以便对后端执行高级运行状况检查,确保它们启动,运行并正确执行应用程序,而不仅仅是TCP端口检查。 请找到 农场卫报 字幕可视电话用于 Odoo 我们在步骤3中设置的服务。 点击 使用FarmGuardian检查后端服务器,你也可以修改检查之间的时间,最后,在 要检查的命令 文本框,键入以下命令:
check_http -I 主机 -w 10 -c 10 -t 10 -e 200 -p 端口 -s ' ‘
最后,点击 修改.

命令 check_http 测试与指定主机的HTTP连接。 在我们的例子中,我们使用以下选项:
- 我主持:令牌HOST将被定义的后端IP地址替换。
-w 10:导致警告状态的响应时间:10秒
-c 10:对临界状态的响应时间:10秒
-t 10:连接超时前的10秒
-e 200:期望字符串200处于服务器响应的状态
-p PORT:令牌PORT将由定义的后端端口替换。
-s' ':内容中应包含的字符串为“ '
此高级运行状况检查可确保我们从真实服务器中获得200 OK响应,并且response命令包含字符串' '。 我们选择此字符串是因为它位于响应的末尾,这样我们可以保证从后端应用程序获得正确的答案。
步骤5:高安全性 #
Odoo 没有为网络通信提供安全的渠道,但我们可以轻松实现这一目标 RELIANOID 负载均衡器如下图所示。

我们必须设置一个HTTPS侦听器: 编辑场全局参数 屏幕,请将服务器场监听器从HTTP更改为HTTPS和 虚拟端口 到443。

在这个阶段, Odoo 可以通过输入来访问 https://[VIRTUAL_IP] 您的浏览器。
安全通信现在正在运行,但我们可以通过配置HTTPS密码来进一步:在服务器场全局参数中,找到 HTTPS设置 部分。 我们可以将密码更改为 高安全性.

密码字段用于构建HTTPS服务器接受的密码列表,以加强SSL连接。 通过选择 高安全性,我们默认设置密码。
kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED
另一种选择是 HTTPS证书可用:将显示为当前服务器场选择的证书列表(仅适用于HTTP场,这是我们的情况)。 我们可以从列表中选择一个并单击 添加。 最后,点击 修改 并重新启动服务器场以应用更改。
最后,该 zencert.pem 证书可以用于测试HTTPS侦听器,但是使用您自己的SSL证书很重要。
有关详细信息,请参阅 HTTP配置文件场.
步骤6:Odoo web base #
Odoo 考虑其设置来构建URL web.base.url。 如果我们通过访问 RELIANOID 在Load Balancer中,我们将看到URL切换到后端的URL。 由于我们已通过HTTPS配置了安全通信,因此这可能会带来问题,我们只能导航至 Odoo 基本URL。 为了避免这种情况,我们必须设置 web.base.url 每个参数 odoo 服务器。
为了实现这一点,访问每个后端,并在左侧面板上,转到 技术>>参数>>系统参数 并改变 web.base.url 以及 RELIANOID 为odoo场选择的Load Balancer虚拟IP和端口。 在我们的示例中,将是https:// 192.168.56.200,甚至更好,https://odoo.mycompany.com。

技术功能可能已禁用。 如果是这种情况,则技术选项将不可用。 要解决此问题,请选择 用户>>用户,编辑当前用户并启用 技术特点 选项下 可用性.
步骤7:Odoo文件存储 #
在高可用性中配置文件存储有多个选项。
1. 在每个后端,我们都可以挂载共享存储并通过参数配置本地路径 ir_attachment.location 下节 设置>>技术>>参数>>系统参数.
2. 如果我们没有一个单元来为文件存储提供共享资源的高可用性,我们可以使用 RELIANOID 为 NFS的 (网络文件系统)服务,以便安装在每个后端。 由于此服务使用TCP和UDP端口,我们可以通过某个虚拟IP下的所有端口创建L4xNAT,这将用于在启动时通过 / etc / fstab文件 文件中。
3. 其他选项是配置 SSHFS 它使用SSH安全服务来使用远程共享文件系统。 由于SSH服务默认使用TCP 22端口,可以通过L4xNAT进行负载平衡,而不用担心与NFS情况类似。
根据是否需要创建主动-主动或主动-被动共享文件存储资源,将需要复制或同步文件。
尽管此主题不在本文讨论范围之内,但将在一篇专门的文章中解决。
现在,您的业务流程和运营已准备好扩展设置 Odoo 的高可用性, RELIANOID, 请享用!