开源OA办公平台搭建教程:基于nginx的快速集群部署——端口分发
主机信息
主机1:172.16.98.8(linux)
主机2:172.16.98.9(linux)
集群需求
172.16.98.8:WEB服务器,应用服务器,文件存储服务器,中心服务器
172.16.98.9:WEB服务器,应用服务器,文件存储服务器,中心服务器
数据库
mysql数据库
nginx访问域名及端口
域名:qmx.o2oa.net(可以用ip,如果域名没有解析需要配置hosts)
端口:80(o2web服务器)、82(o2应用服务器,可以为其他没有冲突的端口)、83(o2中心服务器,可以为其他没有冲突的端口)
分发规则:
|
nginx端口 |
o2端口服务 |
| 80 | 8080(o2web服务器) |
| 82 | 20020(o2应用服务器) |
| 83 | 20030(o2中心服务器) |
配置步骤
一、配置节点标识
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, "isPrimaryCenter": true, "center": { "enable": true, "order": 1.0, "sslEnable": false, "redeploy": true, "port": 20030.0, "httpProtocol": "", "proxyHost": "qmx.o2oa.net", "proxyPort": 83.0, "scanInterval": 0.0, "configApiEnable": true, "statEnable": true, "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico", "maxFormContent": 20.0 }, "application": { "enable": true, "port": 20020.0, "sslEnable": false, "proxyHost": "qmx.o2oa.net", "proxyPort": 82.0, "redeploy": true, "scanInterval": 0.0, "includes": [], "excludes": [], "weights": [], "scheduleWeights": [], "statEnable": true, "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico", "maxFormContent": 20.0 }, "web": { "enable": true, "port": 8080.0, "sslEnable": false, "proxyHost": "", "weight": 100.0, "dirAllowed": false, "statEnable": false, "statExclusions": "*.gif,*.jpg,*.png,*.ico", "cacheControlMaxAge": 0.0 }, "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, "isPrimaryCenter": true, "center": { "enable": true, "order": 2.0, "sslEnable": false, "redeploy": true, "port": 20030.0, "httpProtocol": "", "proxyHost": "qmx.o2oa.net", "proxyPort": 83.0, "scanInterval": 0.0, "configApiEnable": true, "statEnable": true, "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico", "maxFormContent": 20.0 }, "application": { "enable": true, "port": 20020.0, "sslEnable": false, "proxyHost": "qmx.o2oa.net", "proxyPort": 82.0, "redeploy": true, "scanInterval": 0.0, "includes": [], "excludes": [], "weights": [], "scheduleWeights": [], "statEnable": true, "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico", "maxFormContent": 20.0 }, "web": { "enable": true, "port": 8080.0, "sslEnable": false, "proxyHost": "", "weight": 100.0, "dirAllowed": false, "statEnable": false, "statExclusions": "*.gif,*.jpg,*.png,*.ico", "cacheControlMaxAge": 0.0 }, "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这两台服务器3个服务的端口,确保nginx到o2服务器网络正常;
四、配置nginx
进入nginx的nginx.conf文件,修改配置(参考如下),然后重启nginx。
|
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 webServer { # Server: 分发名 server 172.16.98.8:8080; # 分发地址1 server 172.16.98.9:8080; # 分发地址2 } upstream appServer { ip_hash; server 172.16.98.8:20020; server 172.16.98.9:20020; } upstream centerServer { server 172.16.98.8:20030; server 172.16.98.9:20030; } server { listen 80; server_name localhost; location / { root html; index index.html; proxy_pass http://webServer; 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; } } server { listen 82; server_name localhost; location / { proxy_pass http://appServer; 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; } } server { listen 83; server_name localhost; location / { proxy_pass http://centerServer; 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、进入98.8主机的o2server目录,键入./stop_linux.sh ,刷新页面正常访问;
3、进入98.9主机的o2server目录,键入./stop_linux.sh ,刷新页面出现502 Bad Gateway;
4、进入98.8主机的o2server目录,键入./start_linux.sh进入命令行后键入start ,刷新页面正常访问;
开源OA办公平台搭建教程:基于nginx的快速集群部署——端口分发的更多相关文章
- 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(二)
O2OA平台搭建 O2OA的开发环境非常简单,安装服务器后即可通过浏览器进行开发了和使用.具体可参考文档库中的其他文档,有比较详细的介绍,这里就不再赘述了. Arduino开发发环境搭建 安装Ardu ...
- 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(一)
O2OA平台是一个企业办公类系统的低代码开发平台,更够方便的开发和部署协同办公.流程管理等应用,但它能做的远不止这些,今天这个案例就为大家介绍一下,O2OA可以做的更多. 最近对养鱼产生了浓厚的兴趣, ...
- 开源OA办公平台搭建教程:O2OA表单中的事件
1. 概述 我们设计表单的时候经常会有这样的需求:在表单或者组件加载前/加载后,能够执行一些脚本来改变表单或组件的样式和行为.或者用户在点击组件的时候能够执行脚本.表单的事件就是为这样的场景而设计. ...
- Ubuntu下基于Nginx实现Tomcat集群负载均衡
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Nginx是一款HTTP和反向代理服务器,有关它的介绍可以到网上搜一下,很多很多,不再累述.这里,我们记录一下Nginx ...
- 基于Codis的Redis集群部署
Codis是基于代理的高性能Redis集群方案,使用Go语言进行开发,现在在在豌豆荚及其它公司内已经广泛使用,当然也包括我们公司. Codis与常见的Redis集群方案对比. 在搭建的时候,个人觉得R ...
- 基于minikube的kubernetes集群部署及Vitess最佳实践
简介 minikube是一个可以很容易在本地运行Kubernetes集群的工具, minikube在电脑上的虚拟机内运行单节点Kubernetes集群,可以很方便的供Kubernetes日常开发使用: ...
- windows下nginx+tomcat分布式集群部署
首先官网下载 http://nginx.org/en/download.html,我的本地环境为 实现的架构: 从图上可以看出,nginx作为负载均衡请求分发器,当请求A应用时候,分发到A集群,同理 ...
- 开源OA办公平台功能介绍:应用市场-固定资产管理(一)功能设计
概述 应用市场-固定资产管理,是用来维护管理企业固定资产的一个功能.其整个功能包括对固定资产的台账信息.领用.调拨.借用.维修.盘点.报废等一整个生命周期的动态管理过程.力求客户安装就可以使用. 本应 ...
- 基于docker实现哨兵集群部署
简单dockerfile文件,用于演示sentinel哨兵故障转移FROM centos:latest MAINTAINER BIXIAOYU RUN groupadd -r redis && ...
随机推荐
- 网际互连__TCP/IP三次握手和四次挥手
在TCP/IP协议中,TCP协议提供可靠的连接服务. 位码即tcp标志位,有6种标示: SYN(synchronous建立联机).ACK(acknowledgement 确认).PSH(push传送) ...
- [The Preliminary Contest for ICPC Asia Shanghai 2019] B-Light bulbs(差分+思维)
前言 最近有很多算不上事的事,搞得有点心烦,补题难免就很水,没怎么搞,自我检讨一番~~ 说实话网络赛题目的质量还是挺高的,题目都设计的挺好的,很值得学习.这场比赛那会只有我们大二的在做,其他人去参加$ ...
- P2762 太空飞行计划问题 (最小割)
题意:n个实验 每个实验可获利ai元 做每个实验需要几个仪器 购买每个仪器有不同的花费 不同实验可能会用到同一个仪器 只用购买一次 求最大收益 题解:......................... ...
- 【noi 2.5_7834】分成互质组(dfs)
有2种dfs的方法: 1.存下每个组的各个数和其质因数,每次对于新的一个数,与各组比对是否互质,再添加或不添加入该组. 2.不存质因数了,直接用gcd,更加快.P.S.然而我不知道为什么RE,若有好心 ...
- poj1787 Charlie's Change
Description Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he ofte ...
- 设计模式(十八)——观察者模式(JDK Observable源码分析)
1 天气预报项目需求,具体要求如下: 1) 气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方). 2) 需要设计开放型 API,便于其他第三方也能接入气象 ...
- C# 异常重试策略
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- PowerShell随笔9--- call
很多时候我们需要在一个脚本文件执行另外一个脚本文件,比如我们有一个Test.ps1文件 我们有以下2种方法: Invoke-Expression (&) 我们可以看到,Test.ps1中的代码 ...
- 数理统计8:点估计的有效性、一致最小方差无偏估计(UMVUE)、零无偏估计法
在之前的学习中,主要基于充分统计量给出点估计,并且注重于点估计的无偏性与相合性.然而,仅有这两个性质是不足的,无偏性只能保证统计量的均值与待估参数一致,却无法控制统计量可能偏离待估参数的程度:相合性只 ...
- keras fit_generator 并行
虽然已经走在 torch boy 的路上了, 还是把碰到的这个坑给记录一下 数据量较小时,我们可直接把整个数据集 load 到内存里,用 model.fit() 来拟合模型. 当数据集过大比如几十个 ...