Nginx部署tomcat/wildfly集群负载均衡
1.调度器配置:
docker run -p 80:80 --name nginx --restart=always -v /root/nginx/www/:/usr/share/nginx/html -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/logs:/var/log/nginx -v /etc/localtime:/etc/localtime -d nginx
将写好的default.conf的nginx配置文件写好,详见文件其中包括两台后端服务器;
放到conf.d目录,挂载到容器的/etc/nginx/conf.d;
将容器内的日志/var/log/nginx映射出到 宿主机;
将宿主机时间映射到容器内;
2.后端服务器配置:
1)搭建nfs服务器共享
后端服务器挂载该 nfs服务器资源
2)搭建mysql57数据库服务器
3)部署应用服务(tomcat8)
docker run -d -p 8080:8080 -v /opt/server.xml:/usr/local/tomcat/conf/server.xml -v /opt/tomcat应用项目:/usr/local/tomcat/webapps/应用项目名 -v /etc/localtime:/etc/localtime -v /opt/应用项目/logs:/logs -v /opt/应用项目/applog:/usr/local/tomcat/logs --name 应用项目 --restart=always tomcat:8
将tomcat配置文件server.xml文件挂载到容器;
将应用挂载到容器中的/usr/local/tomcat/webapps;
将本地时间映射到容器;
将日志映射到宿主机相应目录;
--restart=always:总是重启,便于重启主机后不能自行启动;
4)部署应用服务容器方式( jboss/wildfly)
先采用容器模式部署
docker run -d -p 80:8080 -p 9990:9990 -u root -v /etc/localtime:/etc/localtime
-v /opt/jboss/standalone.xml:/opt/jboss/wildfly/standalone/configuration/standalone.xml
-v /opt/jboss/module/mysql-connector.jar:/opt/jboss/wildfly/standalone/deployments/mysql-connector.jar
--name wildfly jboss/wildfly
将写好的 wildfly的配置文件 standalone.xml文件挂载到容器目录;
将jdbc 驱动 jar包放入容器内,以便建立jdbc 数据源使用;
编辑standalone.xml文件,
在<subsystem xmlns="urn:jboss:domain:datasources:2.0 标签内添加datasources及driver:
例如:
<datasource jndi-name="java:jboss/datasources/mysqlds" pool-name="mysqlds" enabled="true" use-ccm="false">
<connection-url>jdbc:mysql://ip地址及端口/数据库名称?usessl=true&autoreconnect=true&failoverreadonly=false</connection-url>
<driver>mysql-connector.jar</driver>mysql-connector.jar为启动容器时挂载到deployments目录的jar包
<security>
<user-name>*****</user-name>
<password>******</password>
</security>
注意修改其中的参数( url db_name username password)
3.session问题:
在nginx负载调度器中配置 ip_hash算法,它会根据ip地址去找后端服务器,session会根据ip保持;
4.采用jenkins集成部署war包到wildfly
1)部署jenkins
用容器方式:
docker run -d -p 8002:8080 -u root
-v /etc/profile:/etc/profile
-v /usr/local/java:/usr/local/java
-v /usr/local/ant:/usr/local/ant
-v /root/jenkins:/var/jenkins_home
--name jenkins --restart=always jenkins/jenkins
将ant及java及环境文件挂到jenkins容器中;
2)启动jenkins及部署
添加插件
系统管理-插件管理-未安装-jboss management plugin 、wildfly
系统管理-全局工具配置-新增ant
系统管理-全局工具配置-新增java
新建项目:源码管理:https://svn服务器ip地址/相关代码目录
构建环境:with ant :ant、java
构建:ant
增加构建步骤:
deploy war to wildfly,此处可加入多台需要部署的后端服务器,本文有两台后端服务器;
war包所在目录:
hostname:ip地址
port:9990
user name:admin
password:admin
构建项目
出现错误:fatal: unable to initialize command context.
解决办法:
将/jenkins/ plugins/wildfly-deployer/web-inf/lib/wildfly-cli-8.2.1.final.jar
/jenkins/plugins/wildfly-deployer/web-inf/lib/wildfly-deployer.jar两个文件拷贝至
/jenkins/war/web-inf/lib目录下,重新构建,成功。
3)重复部署
出现错误java.lang.outofmemoryerror: java heap space
在wildfly的standalone.sh文件中加入
java_opts="-xms256m
-xmx2048m
-xx:newsize=256m
-xx:maxnewsize=512m
-xx:permsize=128m
-xx:maxpermsize=256m
-xx:+useconcmarksweepgc
-xx:+cmspermgensweepingenabled
-xx:+cmsclassunloadingenabled
-djboss.platform.mbeanserver"
问题解决
5.完成了nginx作为调度器,后端有两台tomcat或者wildfly的服务器集群部署,同时在调度器上部署jenkins,完成持续集成、部署。
上一篇: random随机数
下一篇: 爬虫-scrapy五大核心组件及工作流
推荐阅读
-
k8s中负载均衡器【ingress-nginx】部署
-
windows安装nginx部署步骤图解(反向代理与负载均衡)
-
Debian下搭建Nginx和Tomcat服务器实现负载均衡的方案
-
Nginx+Tomcat+Https 服务器负载均衡配置实践方案详解
-
详解基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建
-
Nginx+Tomcat高性能负载均衡集群搭建教程
-
Nginx+Tomcat搭建高性能负载均衡集群的实现方法
-
windows下nginx+tomcat配置负载均衡的方法
-
用apache和tomcat搭建集群(负载均衡)
-
Centos 7.6配置nginx反向代理负载均衡集群