1

我需要在一台服务器上安装多个 iDempiere 实例。定制的包在构建和他们使用的数据库中是不同的。有什么方法可以将它们都部署在一台服务器上并像 localhost:8080/client1, localhost:8080/client2 一样访问。任何帮助表示赞赏。

4

3 回答 3

2

当我想引用多个应用程序服务器时,我需要复制各种安装的路径并更改每个应用程序的数据库名称和端口:

/opt/idempiere-server-production/(例如在端口 8080 上)用于生产

/opt/idempiere-server-test/ (例如在端口 8081 上)用于测试

你说的方式是不可能的,因为 webapp 的 idempiere 服务器被称为

http://主机名:端口/webui

于 2015-11-25T16:58:45.313 回答
2

在单个服务器上运行多个 idempiere 实例并不太困难。以下是您需要注意的事项:

  • 将实例安装到不同的目录中。实例不需要共享任何公共文件。因此,您可以为每个实例进行完整安装。
  • 确保每个实例都使用自己的数据库。为实例数据库使用不同的名称。
  • 确保 idempiere 服务器实例使用不同的 tcp 端口。
  • 如果您确实需要使用单个端口来访问所有实例,您可以使用像 apache 或 ngnix 这样的 http 服务器来定义虚拟主机。然后,代理或使用重写规则将允许您执行所需的重定向。(我正在使用子域和 apache mod_proxy 来完成这项工作)
  • 使用子域进行浏览器访问还有另一个好处:如果您的所有服务器实例使用相同的主机名,则客户端浏览器有时无法将来自不同实例的 cookie 分开,这可能导致会话阻塞,如idempiere 中所述谷歌组
  • 使用不同的数据库用户名。文档建议不要更改默认用户名 Adempiere,这对于单实例安装来说是可以的。尽管如此,如果您对所有实例都使用单个数据库用户,那么一旦您需要从备份文件中恢复数据库,您就会遇到麻烦。RUN_DBRestore.sh将删除并重新创建DB 用户,这在用户拥有多个 DB 时是不可能的。
  • 您可以将所有实例作为服务并行运行。在安装另一个实例之前重命名服务脚本:sudo mv /etc/init.d/idempiere /etc/init.d/idempiere-theInstance. 当然,您需要对操作系统的服务控制器进行一些记账工作,以确保重命名的服务按需要启动。
  • 服务控制器通过 OSGI 控制台与 iDempiere 服务器对话。为了在多实例环境中正常工作,您需要为每个实例分配不同的 telnet 端口号:在您选择的编辑器中打开文件/etc/init.d/iDempiere. 找到该行export TELNET_PORT=12612并将端口号更改为其他内容。

请注意:

  • 本指南中的操作系统特定描述适用于 Ubuntu 16/18 或 Debian,如果您需要在其他操作系统上进行一些研究。
  • 一段时间以来,我一直在使用所描述的方法来托管 idempiere 版本 5 和 6,并且到目前为止没有任何问题。如果你想走这条路,仍然要确保你自己做彻底的测试。
  • 如果您遇到任何问题(甚至可能设法解决它们),请向社区报告。(通过对这个问题给出您自己的答案或发布到 idempiere google 组)谢谢!
于 2019-10-01T08:46:01.867 回答
0

您可以根据需要在服务器上进行任意数量的设置。当您运行安装程序来创建属性时,只需为每个安装选择其他 Web 端口。如果 webservers 有一些默认端口,您可能还需要稍微更改它们的配置。

于 2015-03-01T16:42:26.143 回答