`

开源OA办公平台搭建教程:基于nginx的快速集群部署-上下文分发

阅读更多

此配置适合o2集群部署或者外网访问o2server服务(如移动端h5方式访问o2)

此配置需要o2server V5.2及以上版本

主机信息

主机1:172.16.98.8(linux)

主机2:172.16.98.9(linux)

集群需求

172.16.98.8WEB服务器,应用服务器,文件存储服务器,中心服务器

172.16.98.9WEB服务器,应用服务器,文件存储服务器,中心服务器

数据库

mysql数据库

nginx访问域名及端口

域名:qmx.o2oa.net(可以用ip,如果域名没有解析需要配置hosts)

端口:80(o2web服务器、o2应用服务器、o2中心服务器

分发规则(下面的上下文(如:/dev/web)不是固定的,可以根据自身需要需改):

nginx80端口匹配的上下文

o2端口服务

/dev/web/ 8080(o2web服务器)
/dev/app/ 20020(o2应用服务器)

/dev/center/

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

 

二、配置node文件

 

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": 20030.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": 20020,

   "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": 20030.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": 20020.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.jsono2server/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、分别172.16.98.8和172.16.98.9主机的o2server/configSample目录中copy文件portal.json到o2server/config目录

2、修改portal.json(修改urlMapping的内容,其他保持不变)

{
  "indexPage": {
    "enable": false,
    "portal": "",
    "page": ""
  },
  "loginPage": {
    "enable": false,
    "portal": "",
    "page": ""
  },
  "urlMapping": {
    "qmx.o2oa.net:20020": "qmx.o2oa.net/dev/app",
    "qmx.o2oa.net:20030": "qmx.o2oa.net/dev/center"
  },
  "###indexPage": "定制首页面设置.###",
  "###loginPage": "定制登录页面设置.###"
}

 

四、启动服务器

1、进入o2server目录,执行./start_linux.sh,当显示出o2命令信息时输入start启动服务,观察center服务、app服务器、web服务启动是否正常;

 

2、当两台服务器都启动正常后进入nginx服务器,telnet这两台服务器3个服务的端口,确保nginx到o2服务器网络正常;

 

五、配置nginx

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 {

       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;

       proxy_http_version 1.1;

       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;

       location /dev/web/ {

           root   html;

           index  index.html;

           proxy_pass http://webServer/;

       }

       location /dev/app/ {

           proxy_pass http://appServer/;

       }

       location /dev/center/ {

           proxy_pass http://centerServer/;

       }

   }

}

 

 

六、测试验证

1、浏览器访问地址:http://qmx.o2oa.net/dev/web  使用 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 ,刷新页面正常访问;

1
1
分享到:
评论

相关推荐

    docker-nginx-s3proxy:基于 nginx 的 s3 代理 - docker

    基于 nginx 的 s3 代理 - docker 从 S3 为您的静态主页提供服务,同时通过在 docker 中运行的 nginx 代理来保持存储桶的私密性。 用法 克隆这个 repo: git clone --recursive ...

    nginx-1.18.0-2.el7.ngx.x86-64.rpm安装包(含有部署手册)

    nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm...

    windows平台nginx编译nginx-http-flv-module

    在给定的压缩包文件中,"使用必看.txt"可能包含了编译和使用过程中的注意事项,而"nginx-rtmp.zip"可能是包含了RTMP模块的源代码,这在搭建流媒体服务器时也会用到,因为HTTP FLV Module通常与RTMP模块结合使用,为...

    nginx-sticky-module-1.25.zip

    nginx sticky是nginx的module,可以实现基于cookie的负载均衡。 下载后,在编译安装nginx时,用--add-module选项,指到sticky所在目录。类似命令如下: ./configure --prefix=/usr/local/nginx-1.6.0 --add-module=...

    nginx-http-flv-module(windows版)

    --> nginx-1.21.6 ======================== 在网上查找半天都只有教程,没有可免费下载的版本,深知没有积分遍地找资源的痛苦,无奈之下只好自己按照教程一步一个坑编译出来的,供大家免费下载使用。(无毒放心使用...

    (修复bug模块)nginx-http-flv-module-master 支持flv模块直播

    【压缩包子文件的文件名称列表】:虽然未提供具体的文件列表,但通常一个开源项目如“nginx-http-flv-module-master”会包含以下组件: 1. `README.md` - 项目介绍和安装指南。 2. `src/` - 源代码目录,包含模块的...

    nginx-module-vts.tar.gz

    Nginx-Module-VTS,全称是Nginx VTS (Virtual Host Traffic Status) Module,它扩展了Nginx的基本功能,提供了实时的、基于虚拟主机的访问统计信息。通过这个模块,我们可以获取到如下的关键数据: 1. **请求总数**...

    lua-nginx-module-0.10.13

    OpenResty是基于Nginx和lua-nginx-module的高性能Web平台,提供了更完整的Lua扩展库和工具集,如lua-nginx-memcached-module、lua-resty-redis等。 5.2 LuaJIT优化 LuaJIT是Lua的一个高性能Just-In-Time编译器,能...

    k8s下部署nginx集群部署方式(相关yaml文件的编写和说明)

    总结来说,通过`nginx-pv.yaml`和`nginx-set.yaml`,我们可以设置一个包含持久化存储和有序、有状态部署的Nginx集群。这为高可用性和可扩展性提供了基础,同时保证了服务的稳定性和数据的安全性。在实际操作中,还...

    添加nginx-http-flv-module模块并重新编译后的nginx(windows版)

    总结来说,这个资源提供了一个预装有`nginx-http-flv-module`的Nginx Windows版本,方便用户快速部署流媒体服务。如果你需要自定义Nginx的配置或更新模块,可以根据上述步骤进行操作。同时,理解Nginx的编译和配置...

    nginx带nginx-http-flv模块windows编译版rtmp

    总结,这个压缩包中的"nginx-with-http-flv-moudle"是一个包含Nginx、Nginx-RTMP和Nginx-HTTP-FLV模块的预编译版本,特别适合在Windows系统上快速搭建一个具备全面流媒体处理能力的服务器。用户无需复杂的编译过程,...

    windows下nginx-http-flv-module一键部署 非常方便

    在给定的文件列表中,我们看到`nginx-1.19.3`,这是Nginx 1.19.3版本的源代码包。访问Nginx官方网站或镜像站点可以获取到最新版本,确保下载的是适合Windows的源码。 接下来,我们要下载HTTP-FLV模块。通常,这些...

    Redis+nginx集群部署

    本文将详述如何使用Tomcat、Nginx和Redis来搭建这样的集群,并着重讲解Session共享的问题,因为这是多服务器环境中的关键挑战。 **标题:Redis+nginx集群部署** **描述:**在本实践中,我们将结合Tomcat应用服务器...

    nginx-rtmp-module

    Nginx-RTMP-Module 是由 Lavf57 开发的一个开源项目,其核心功能是添加对 RTMP 协议的支持,使得 Nginx 可以作为 RTMP 服务器接收来自编码器的音视频流,同时也可以将这些流推送到其他 RTMP 服务器或直接分发给...

    win环境使用nginx的nginx-http-flv-module.zip

    在windows 7 64位 环境下使用nginx的nginx-http-flv-module搭建flv视频流播放所有的安装包,参考:https://blog.csdn.net/qq_33071429/article/details/102628008

    nginx-1.19.3-http-flv.zip

    资源说明: 1. 采用nginx最新版编译,包含最新的nginx-http-flv-module,以及基础...1. 将压缩包解压到D:\nginx-1.19.3目录下 2. 使用cmd命令打开DOS,并切换到D:\nginx-1.19.3 3. 使用nginxservice.exe install安装

    windows下编译nginx-http-flv-moudle

    4. **编译过程**: 在Windows上编译`nginx-http-flv-module`,首先需要安装编译环境,包括Visual Studio或MinGW等编译工具。然后下载Nginx源代码和`nginx-http-flv-module`源码,通过Nginx的configure脚本配置编译...

    Linux搭建Nginx集群步骤+详细配置

    本文将详细介绍如何在Linux上搭建Nginx集群,以及如何进行详细配置,以实现负载均衡功能。 首先,我们需要理解负载均衡的基本概念。负载均衡是一种技术,通过分散网络流量到多个服务器,防止单点故障,提高服务的...

    nginx-1.24.0-Gryphon+rtmpModule+Native HLS Playback插件+ffmpeg-x

    Nginx RTMP Module 提供了发布、播放、录制、重定向等操作,是搭建基于RTMP的流媒体服务器的关键组件。 **Native HLS Playback 插件** HLS(HTTP Live Streaming)是由Apple开发的一种流媒体协议,适用于HTTP传输...

    nginx-http-flv-module(windows & nginx1.19.3 & http-flv-module1.2.7).zip

    1、最新版 nginx-http-flv-module(windows可执行程序,含nginx 1.19.3,http-flv-module:1.2.7) 2、内含说明文档,请下载查看。 3、请勿放置于中文路径下,否则无法启动

Global site tag (gtag.js) - Google Analytics