博主原创,转载请注明。

由于项目需要,共创建了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. Day1 Python 介绍及基础

    ******************本文目录******************一.Pyhon基本介绍 1.Why Python? 2. Python 是一门什么样的语言? 3.Python的优缺点: ...

  2. jQuery选择器---层次选择器总结

    今天要分享的是jQuery层次选择器,层次选择器的分类如图: 接下来就开始了 要不先养养眼精神一下: 开始1.祖先选择器: 案例: <form> <label>Name:< ...

  3. 详解JS对象

                                          [自定义对象] 1.基本概念 ①对象是包含一系列无序属性和方法的集合: ②键值对:对象中的数据是以键值对的形式存在的,以键取 ...

  4. LeetCode:36. Valid Sudoku,数独是否有效

    LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...

  5. JSP页面的静态包含和动态包含

    JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:<jsp:include page="被包含页面" ...

  6. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始

    0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...

  7. 使用FileSystem自带的api读取hdfs中的文件

    博客搬家自https://my.oschina.net/itsyizu/blog/ 1. 创建hadoop MapReduce项目 输入项目名称 创建好的项目初始化状态如下 编写java类 impor ...

  8. NioSocket相关知识

    一.Nio简介 nio 是non-blocking的简称,在jdk1.4 里提供的新api .Sun 官方标榜的特性如下: 为所有的原始类型提供(Buffer)缓存支持.字符集编码解码解决方案. Ch ...

  9. Android onclick监听事件打开新界面

    一.新建工程 二.新建XML代码 新建一个Button <Button android:layout_width="wrap_content" android:layout_ ...

  10. struts2.1.6教程十一、注解配置

    在此先略去注解配置的实例,具体可以参看官方提供的文档.其实在熟悉struts及相关的一些内容后,再来看文档是比较容易理解得.只是要注意使用注解Annotition时: (1)要多导入一个jar包:st ...