Linux下nginx+多个Tomcat负载均衡的实现
博主原创,转载请注明。
由于项目需要,共创建了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负载均衡的实现的更多相关文章
- Linux 下 nginx反向代理与负载均衡
前面几篇记录下nginx的基本运功,代理服务器的访问,这里来试验下nginx的反向代理. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给 ...
- Linux 下Nginx 的安装及负载均衡的简单配置
这次发布程序需要均衡负载,网上看了一下这方便的东西,觉得很不错,学完之后做下总结,一遍后期用到. 1.安装nginx之前需要安装的两个依赖,pcre-x.x.x.tar.gz 和pcre-devel- ...
- centos 安装nginx + 多个tomcat负载均衡
今天在centos上安装了两个tomcat和nginx,进行配置.今天记录的只是最基本的实现测试.(不包含使用redis进行session共享) Nginx 是一款轻量级的Web 服务器/反向代理服务 ...
- Linux平台上搭建apache+tomcat负载均衡集群
传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...
- VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)
准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...
- Linux系统——Nginx反向代理与负载均衡
集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供 ...
- 使用apache和nginx代理实现tomcat负载均衡及集群配置详解
实验环境: 1.nginx的代理功能 nginx proxy: eth0: 192.168.8.48 vmnet2 eth1: 192.168.10.10 tomcat server1: vmnet2 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- nginx+tomcat负载均衡
最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...
随机推荐
- poj 1088 动态规划
#include <iostream> #include <string.h> using namespace std; ][];//存储当前位置能得到的最优解 ][];//存 ...
- 谈谈RDD、DataFrame、Dataset的区别和各自的优势
在spark中,RDD.DataFrame.Dataset是最常用的数据类型,本博文给出笔者在使用的过程中体会到的区别和各自的优势 共性: 1.RDD.DataFrame.Dataset全都是spar ...
- 直接用nose进行django项目测试并输出html报告
先说需求:1.测试django项目:2.打印测试报告(html格式)有以下几种测试方法:1.django自带的测试模块.在app目录下的tests.py文件中写测试类,类似这样: class MyTe ...
- JAVA-Socket通信笔记
JAVA - Socket 从开学到现在 也学了三个月时间的java了,一直在 在 语法和基本使用上周旋,井底之娃一枚. 这两天 有学长指点,花了两天的时间 学习了java多线程和socket的简单使 ...
- 学习SpringMVC中优秀的代码编写风格
在org.springframework.web.servlet.FrameworkServlet 中有下面这段代码 private class ContextRefreshListener impl ...
- Codeforces Round #392 (Div. 2)
D题,给出n,k,k是n进制数,但是大于十进制时,它的表示方法仍为十进制那种,比如16进制下的15,我们可以看成就是15,或者1|5,也就是1×16+5 = 21,让你求出能表达的最小十进制数 从后面 ...
- redis入门指南-附录B
- java中String是对象还是类?详解java中的String
有很多人搞不懂对象和类的定义.比如说java中String到底是对象还是类呢? 有人说String 既可以说是类,也可以说是对象. 其实他这么说也没问题, 类和对象其实都是一个抽象的概念. 我们可以把 ...
- 二识angularJS
前言:记得三月份时下定决心说每天要更新一篇博客,学习点新东西,实践下来发现太不现实,生活中的事情很多,再喜欢也不能让它一件占据生活的全部吧,所以呢,以后顺其自然吧.之前有一篇'初识angular'因为 ...
- Tomcat 安装与配置
1. 将压缩文件“apache-tomcat-7.0.62.zip ”上传到linux系统目录:/home/下 2. 进入目录 cd /home/ 解压文件,执行如下命令:unzip apache-t ...