搭建Camunda工作流引擎的生产环境

Camunda是一个业界著名的工作流引擎平台,其7.0社区版可以提供免费的工作流平台。这里记录以下搭建一个生产环境的过程

下载Camunda的运行环境

从以下网址下载最新的7.17版本, https://downloads.camunda.cloud/release/camunda-bpm/run/7.17/

下载到本地目录中

配置一个独立的数据库

Demo环境是运行自带的H2数据库,生产环境建议连接到一个独立的数据库。这里我选择的是Postgres,创建一个名为camunda的数据库。

获取Liquibase的镜像,docker pull liquibase/liquibase,然后运行以下命令,其中/local/camunda-sql-scripts-7.17.0/liquibase存放了changelog的文件

docker run --rm -v /local/camunda-sql-scripts-7.17.0/liquibase:/liquibase/changelog liquibase/liquibase --url="jdbc:postgresql://192.168.0.105:5432/camunda" --changeLogFile=camunda-changelog.xml --username=roy --password=123456 update

运行psql,连接到camunda数据库,在目录camunda-sql-scripts-7.17.0/liquibase/baseline中存放了各个数据库对应的sql文件,找到postgres对应的两个文件,然后在psql里面通过\i命令来安装运行这两个文件,这样就在PG里面创建了对应的数据表。

把pg的jdbc driver文件放到camunda目录的configuration/userlib目录下

配置Nginx反向代理

生产环境可以配置多个工作流引擎来进行负荷分摊,这时我们需要配置一个Nginx作为反向代理。另外当我们的Web前端需要调用工作流引擎的API时,会遇到跨域访问的问题,这时也需要在Nginx里面配置Reponse Header,加上允许跨域访问的设置。

在production.yml文件里面虽然也有增加跨域访问的配置,但是我发现修改了之后好像还是不行,可能有些地方的设置还不太了解,为了简便起见,还是在Nginx里面做设置吧。

编辑/etc/nginx/sites-available/default,在server里面增加以下配置:

add_header Access-Control-Allow-Origin http://127.0.0.1:5500 always;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS alw$
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,U$
add_header Access-Control-Max-Age 1728000 always;

if ($request_method = OPTIONS) {
     return 204;
}

location / {
     try_files $uri $uri/ =404;
}

location /camunda {
     proxy_pass http://localhost:8080;
}

location /camunda/engine-rest {
     proxy_pass http://localhost:8080/engine-rest;
}

修改生产环境配置

在camunda的configuration目录下有一个production.yml文件,修改里面的spring.datasource如下例子:

spring.datasource:
  url: jdbc:postgresql://192.168.0.105:5432/camunda
  driver-class-name: org.postgresql.Driver
  username: roy
  password: 123456

注释掉run里面cors的相关配置,因为已经在nginx里面做过设置了。Server里面的ssl配置也可以注释掉,因为可以通过nginx来统一配置。

最后运行camunda目录下的start.sh --production即可启动生产环境,然后进入http://localhost/camunda即可访问

你可能感兴趣的:(工作流,其他)