nginx + tomcat 搭建负载均衡、动静分离(tomcat多实例

一、配置nginx

1、安装ningx

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

安装依赖环境包

yum install -y pcre-devel zlib-devel open

创建运行用户、组

useradd -M -s /sbin/nologin nginx

ssl-devel gcc gcc-c++

上传nginx-1.15.9.tar.gz至/opt目录

cd /opt

tar xzvf nginx-1.15.9.tar.gz    解包

cd nginx-1.15.9/    准备编译

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make j3 && make install    安装

make

路径优化

ln -s /usr/local/nginx/sbin/ng

添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

inx /usr/local/sbin/

chmod 754 /lib/systemd/system/nginx.service    给权限

systemctl enable nginx.service    开机启动

systemctl start nginx.service   启动nginx

nginx -t  检查nginx配置文件

 二、在2台虚拟机上分别部署tomcat

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

上传所需要的安装包到  /opt

pache-tomcat-9.0.16.tar.gz    jdk-8u201-linux-x64.rpm

 

查看java版本     java -version

rpm -ivh jdk-8u201-linux-x64.rpm   解jdk包

 

设置JDK的环境变量

vim /etc/profile.d/java.sh                                   #/etc/profile.d/  环境变量脚本目录    
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64    #输出指定java所需的类文件
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar        #可执行文件的位置
export PATH=$JAVA_HOME/bi

source /etc/profile.d/java.sh  全局变量加载生效
java -version   再次查看版本会有所变化n:$PATH

 

cd /opt

tar zxvf apache-tomcat-9.0.16.tar.gz  解包
mv apache-tomcat-9.0.16 /usr/local/tomcat    #将解压后的包剪切到/usr/local 目录中,并改名为tomcat

ls /use/local/tomcat  查看



优化管理tomcat

ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

启动、关闭tomcat

startup.sh   开启

ps -aux | grep 8080    检查开启

shutdown.sh  关闭

 优化Tomcat

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security

securerandom.source=file:/dev/urandom    修改117行

备份tomcat配置文件 cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak

三、配置tomcat1和2 动静分离配置

1、tomcat1配置

1、Tomcat1 server 配置

mkdir /usr/local/tomcat/webapps/test

vim /usr/local/tomcat/webapps/test/index.jsp     #动态页面的配置
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

 

2、tomcat1 添加虚拟主机配置

vim /usr/local/tomcat/conf/server.xml
   <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />        #新增

shutdown.sh 
startup.sh

配置tomcat环境变量

vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1

#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
------------------------------
source /etc/profile.d/tomcat.sh

修改tomcat2中的server.xml文件,要求各tomcat实例配置不能有重复的端口号

vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">		#22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"		#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />	#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
------------------------------
第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

第二个连接器默认监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器

 

 

修改各tomcat实例中的startup.sh和shutdown.sh文件,添加tomcat环境变量

vim /usr/local/tomcat/tomcat1/bin/startup.sh 
#------------------------------
# Start Script for the CATALINA Server
#------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
#------------------------------
# Stop script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat2/bin/startup.sh 
#------------------------------
# Start Script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
#------------------------------
# Stop script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

启动各tomcat中的/bin/startup.sh

/usr/local/tomcat/tomcat1/bin/startup.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 

netstat -natp | grep java

浏览器访问测试

http://192.168.80.60:8080
http://192.168.80.60:8081

 

 

 

 

 

Nginx+Tomcat负载均衡、动静分离集群

Nginx应用

  • Nginx是一款非常优秀的HTTP服务器软件
    • 支持高达50000个并发连接数的响应
    • 拥有强大的静态资源处理能力
    • 运行稳定
    • 内存、CPU等系统资源消耗非常低

目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

Nginx负载均衡实现原理

  • Nginx实现负载均衡是通过反向代理实现

代理方式

  • 正向代理

    代理的时客户端

  • 反向代理

    代理的时服务端

 

 

Nginx配置反向代理的主要参数

  • upstream服务池名{}
    • 配置后端服务器池,以提供响应数据
  • proxy _pass http://服务池名
    • 配置将访问请求转发给后端服务器池的服务器处理

Nginx动静分离原理

动静分离原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

 

 

Nginx静态处理优势

  • Nginx处理静态页面的效率远高于Tomcat的处理能力
  • 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
  • Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
  • Nginx处理静态资源的能力是Tomcat处理的6倍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值