本篇介绍基于 Nginx 端口分发机制实现 O2OA 平台集群部署的完整方案。平台默认启动应用、中心、web、数据与存储等服务器,其中应用、中心与 web 服务器对外提供 http 服务,需要在转发环境中做端口映射。文中说明主机规划、节点标识与节点配置文件的准备、服务启动,以及 Nginx 上游与监听规则的写法,并给出停用与启用节点验证转发效果的步骤。
O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]采用分布式架构设计,提供灵活的扩展方案,用于扩展服务器负载能力、保障系统高可用性。本篇主要介绍如何基于 Nginx 端口分发的方式快速完成集群部署,适用于 O2OA(翱途) V7.2 及以上版本。
O2OA 服务器默认启动5个服务,分别为:
Application 应用服务器,默认端口:20020
Center 中心服务器,默认端口:20030
Web web资源服务器,默认端口:80
Data 数据库服务器,默认端口20050(默认情况下同时提供一个 Web GUI 管理界面,默认端口 20051)
Storage 默认文件存储服务器,默认端口20040
其中 Data 和 Storage 在生产环境中建议使用商用产级品。
Application,Center 和 Web 三个服务器同时对外提供 http 服务,在集群和网络转发环境中需要对这些服务端口进转发。
主机1:172.16.98.8(linux)
主机2:172.16.98.9(linux)
172.16.98.8:WEB服务器,应用服务器,文件存储服务器,中心服务器
172.16.98.9:WEB服务器,应用服务器,文件存储服务器,中心服务器
MySQL 数据库
域名:qmx.o2oa.net(也可以用 ip,如果域名没有解析需要配置 hosts)
端口:80(o2oa 服务)
Nginx 分发规则:
nginx 端口 | o2oa 端口服务 |
80 | 8080(o2oa Web 服务器、o2oa 应用服务器、o2oa 中心服务器) |
1)在主机172.16.98.8的 o2server/local 目录中修改或者新增文件 node.cfg,修改内容为主机的域名或者 IP;
主机172.16.98.8的节点标识文件配置
172.16.98.8 |
2)在主机172.16.98.9的 o2server/local 目录中修改或者新增文件 node.cfg,修改内容为主机的域名或者 IP;
主机172.16.98.9的节点标识文件配置
172.16.98.9 |
1)从172.16.98.8主机的 o2server/configSample 目录中 copy 文件 node_127.0.0.1.json 到 o2server/config 目录,命名为 node_172.16.98.8.json,再拷贝一份命名为 node_172.16.98.9.json;
2)修改 node_172.16.98.8.json 文件如下(#井号部分需关注):
{
"enable":true,
"center":{
"enable":true,
"order":1.0,
######"sslEnable":false,
"redeploy":true,
"port":8080.0,
"httpProtocol":"",
"proxyHost":"qmx.o2oa.net",
######"proxyPort":80.0######
},
"application":{
"enable":true,
"port":8080.0,
"sslEnable":false,
"proxyHost":"qmx.o2oa.net",
######"proxyPort":80.0,
######"includes":[
],
"excludes":[
]
},
"web":{
"enable":true,
"port":8080.0,
######"sslEnable":false,
"proxyHost":""
},
"data":{
"enable":false,
######"tcpPort":20050.0,
"webPort":20051.0,
"includes":[
],
"excludes":[
],
"jmxEnable":false,
"cacheSize":512.0,
"logLevel":"WARN",
"maxTotal":50.0,
"maxIdle":0.0,
"statEnable":true,
"statFilter":"mergeStat",
"slowSqlMillis":2000.0
},
"storage":{
"enable":true,
"port":20040.0,
"sslEnable":false,
"name":"251",
######"accounts":[
],
"prefix":"",
"deepPath":false
},
...
}3)修改 node_172.16.98.9.json 文件如下(#井号部分需关注):
{
"enable":true,
"center":{
"enable":true,
"order":2.0,
######"sslEnable":false,
"redeploy":true,
"port":8080.0,
"httpProtocol":"",
"proxyHost":"qmx.o2oa.net",
######"proxyPort":80.0######
},
"application":{
"enable":true,
"port":8080.0,
"sslEnable":false,
"proxyHost":"qmx.o2oa.net",
######"proxyPort":80.0,
######"includes":[
],
"excludes":[
]
},
"web":{
"enable":true,
"port":8080.0,
######"sslEnable":false,
"proxyHost":""
},
"data":{
"enable":false,
######"tcpPort":20050.0,
"webPort":20051.0,
"includes":[
],
"excludes":[
],
"jmxEnable":false,
"cacheSize":512.0,
"logLevel":"WARN",
"maxTotal":50.0,
"maxIdle":0.0,
"statEnable":true,
"statFilter":"mergeStat",
"slowSqlMillis":2000.0
},
"storage":{
"enable":true,
"port":20040.0,
"sslEnable":false,
"name":"252",
######"accounts":[
],
"prefix":"",
"deepPath":false
},
...
}4)从172.16.98.8主机的 o2server/configSample 目录中 copy 文件 externalDataSources_mysql.json 到 o2server/config 目录,命名为 externalDataSources.json。然后修改配置文件中数据库相应的配置信息;
5)从172.16.98.8上复制修改好的 node_172.16.98.8.json、node_172.16.98.9.json 和 externalDataSources.json 文件到172.16.98.9的 o2server/config 目录。
1)进入 o2server 目录,执行。/start_linux.sh,当显示出 o2命令信息时输入 start 启动服务,观察 center 服务、app 服务器、web 服务启动是否正常;
2)当两台服务器都启动正常后进入 nginx 服务器,telnet 这两台服务器 o2服务的端口,确保 nginx 到 o2服务器网络正常;
进入 nginx.conf 文件,修改配置(参考如下),然后重启 nginx 或者 reload 让修改生效即可。
http { include mime.types; default_type application/octet-stream; charset utf-8; #access_log logs/access.log main; client_max_body_size 100m; # 数据包大小限制 sendfile on; tcp_nopush on; keepalive_timeout 65; #gzip on; upstream o2Server { # Server: 分发名 server 172.16.98.8:8080; # 分发地址1 server 172.16.98.9:8080; # 分发地址2 } server { listen 80; server_name localhost; location / { root html; index index.html; proxy_pass http://o2Server; proxy_read_timeout 300s; proxy_set_header Upgrade $http_upgrade; # 支持websocket连接 proxy_set_header Connection "upgrade"; # 支持websocket连接 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}1、浏览器访问地址:http://qmx.o2oa.net/ 使用 xadmin/o2登录;
2、进入172.16.98.8主机的o2server目录,键入./stop_linux.sh ,刷新页面正常访问(服务被转发到172.16.98.9);
3、进入172.16.98.9主机的o2server目录,键入./stop_linux.sh ,刷新页面出现502 Bad Gateway(两台服务器均停止服务,无内容可被请求);
4、进入172.16.98.8主机的 o2server 目录,键入。/start_linux.sh 进入命令行后键入 start,刷新页面正常访问(172.16.98.8服务器启动完成,向外提供服务能力);
以上是使用 Nginx 以端口转发的形式实现 O2OA 集群的说明,希望对您有所帮助。
相关问题讨论
相关内容