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自带目录,一只小猫。