博主原创,转载请注明。

由于项目需要,共创建了10个Tomcat端,由nginx负责转发。9个Tomcat端口分别是8080,11000,12000,13000,14000,15000,16000,17000,18000,19000.

nginx配置:upstream Tomcat {

server xxx.xxx.xx.xxx:8080

server xxx.xxx.xx.xxx:11000

...以此类推

}

server配置:

server{

if ( $uri = '/' ){
rewrite .* / break;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat;
}

server{

if ( $uri = '/' ){
rewrite .* / break;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat;
}

...依次类推

}

其他类似。主要是Tomcat这里配置比较繁琐。

1,下载jdk安装包,这里下载的是1.8版本的。

2,解压。

3,安装路径在/usr/java目录中

4,环境变量的配置:

vim /etc/profile进入编辑:

export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=/usr/java/jdk1.8.0_131/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mysql/bin:$PATH

添加完成之后source /etc/profile使其生效。

检测:在命令行输入Java -version即可看到JDK版本等信息,表示安装成功。接着是Tomcat的配置。

tomcat:

1,下载安装包,这里下载的是apache-tomcat-8.5.15.tar.gz。

2,解压安装脚本:

for i in crm dz jz tb wm xyg yg yj lcb gw
do
cd /usr/local
tar -zxf apache-tomcat-8.5.15.tar.gz
mv -f apache-tomcat-8.5.15 /usr/local/tomcat/"${i}"  #生成10个Tomcat端
cd /usr/local/tomcat/"${i}"/bin/
cat >> catalina.sh <<EOF       #这里的代码主要是配置每个Tomcat端的启动脚本的环境变量
export CATALINA_BASE=\$CATALINA_BASE_${i}  #这里要注意脚本会转换$符号,所以要用单引号把$符号扩起来,让他不要转义
export CATALINA_HOME=\$CATALINA_HOME_${i}
EOF
cat >> /etc/profile <<EOF   #这里的代码主要是配置这10个Tomcat端的环境变量

#${i}

CATALINA_BASE_${i}=/usr/local/tomcat/${i}
CATALINA_HOME_${i}=/usr/local/tomcat/${i}
export CLASSPATH=.:\${CATALINA_HOME_${i}}/bin/tomcat-juli.jar:\${CATALINA_HOME_${i}}/bin/bootstrap.jar
export CATALINA_BASE_${i} CATALINA_HOME_${i}

EOF
done

crm dz jz tb wm xyg yg yj lcb gw这些是项目中的名称,可以不用去管他,你也可以自己取名

接下来,配置每个Tomcat的端口。稍后我会上传自动替换脚本。

进入每一个Tomcat端的conf目录下,cd /usr/local/tomcat/项目名称/conf

vim server.xml

修改3处:

1)<Server port="8005" shutdown="SHUTDOWN">  port端口号

2)<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />   port端口号

3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />   port端口号

之后:cd ../bin/

修改:

vim catalina.sh

查找到:setclasspath这个名称。命令:/setclasspath

修改$CATALINA_HOME+你项目名称(要对应),注意这里要修改setclasspath这个名称前所有的$CATALINA_HOME

esc,:wq保存并退出。

至此,配置基本完成。

最后,进入到bin目录下,先./shutdown.sh,然后再./startup.sh就成功启动了

如果网页显示拒绝的话,那么很有可能是防火墙拒绝了,要添加规则

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j ACCEPT

或者

-A INPUT -s 你的IP地址 -j ACCEPT

在浏览器地址栏中输入http://localhost:端口,即可访问,默认应该是Tomcat自带目录,一只小猫。

Linux下nginx+多个Tomcat负载均衡的实现的更多相关文章

  1. Linux 下 nginx反向代理与负载均衡

    前面几篇记录下nginx的基本运功,代理服务器的访问,这里来试验下nginx的反向代理. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给 ...

  2. Linux 下Nginx 的安装及负载均衡的简单配置

    这次发布程序需要均衡负载,网上看了一下这方便的东西,觉得很不错,学完之后做下总结,一遍后期用到. 1.安装nginx之前需要安装的两个依赖,pcre-x.x.x.tar.gz 和pcre-devel- ...

  3. centos 安装nginx + 多个tomcat负载均衡

    今天在centos上安装了两个tomcat和nginx,进行配置.今天记录的只是最基本的实现测试.(不包含使用redis进行session共享) Nginx 是一款轻量级的Web 服务器/反向代理服务 ...

  4. Linux平台上搭建apache+tomcat负载均衡集群

    传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...

  5. VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)

    准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...

  6. Linux系统——Nginx反向代理与负载均衡

    集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供 ...

  7. 使用apache和nginx代理实现tomcat负载均衡及集群配置详解

    实验环境: 1.nginx的代理功能 nginx proxy: eth0: 192.168.8.48 vmnet2 eth1: 192.168.10.10 tomcat server1: vmnet2 ...

  8. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  9. nginx+tomcat负载均衡

    最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...

随机推荐

  1. Jquery将<a>链接变为post请求

  2. python循环

    #!/usr/bin/python #coding:utf-8 lcf_age = "19" count = 0 while count < 3: c_lcf_age = i ...

  3. nodejs弯路-01之'express' 不是内部或外部命令

    最近正想用node+angular+mongodb来完成一个小项目,三样都算是从零开始学习吧. 一开始是想用express -e projectname去创建一个ejs模板的项目.(一两句话就可以把大 ...

  4. POJ2524并查集水题

    Description There are so many different religions in the world today that it is difficult to keep tr ...

  5. MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  6. 使用 jQuery.Pin 垂直滚动时固定导航

    ZKEACMS的导航默认是不能固定的,随着页面的滚动而滚动,为了有更好的用户体验,当页面往下滚动时,可以将导航固定在顶端,这样方便用户点击. jQuery Pin 借助jQuery的一个插件 jQue ...

  7. 029 hibernate抓取策略

    实例A引用实例B,B如果是代理的话(比如多对一关联中):如果遍历A的查询结果集(假设有10条记录),在遍历A的时候,访问B变量,将会导致n次查询语句的发出!这个时候,如果在B一端的class上配置ba ...

  8. cuda学习2-block与thread数量的选取

    由上一节可知,在main函数中,cuda程序的并行能力是在add<<<N,1>>>( dev_a, dev_b, dev_c )函数中体现的,这里面设置的是由N个b ...

  9. JMeter-Eclipse添加自定义函数 MD5加密 32位和16位

    最近公司的接口都是MD5  16位加密,所以要使用加密功能. 之前也做过加密,因为用的比较少,所以是写了一个加密方法,导出JAR包,调用的.用起来需要很多设置,并且换算效率也不高.听前同事说,jmet ...

  10. 写给Android App开发人员看的Android底层知识(8)

    (十)PMS及App安装过程 PMS,全称PackageManagerService,是用来获取Apk包的信息的. 在前面分析四大组件与AMS通信的时候,我们介绍过,AMS总是会使用PMS加载包的信息 ...