O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]使用分布式架构设计,提供灵活的扩展方案用于对服务器的负载能力进行扩展,保障系统的高可用性。本篇主要介绍如何基于nginx端口分发的方式快速集群部署。本篇适用O2OA(翱途) V7.2及以上版本。
O2OA平台应用结构
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集群的介绍,希望对您有帮助。