Tomcat 多实例及动静分离配置

Tomcat 多实例及动静分离配置

  • 多实例部署
  • 动静分离
    • 一、tomcat与nginx的区别
    • 三、配置Java环境
    • 安装Tomcat
  • 安装Nginx

多实例部署

同一系统安装多个 tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2

3.配置 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

4.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
		#22行,修改Server prot,默认为8005 -> 修改为8006
 修改为8081
	#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010


5.修改各 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

6.启动各 tomcat 中的 /bin/startup.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 

netstat -natp | grep java

7.浏览器访问测试
http://192.168.80.10:8080
http://192.168.80.10:8081

动静分离

1. 什么是网站动静分离架构模式?
网站中的动静分离其实就是将动态资源和静态资源分离处理。
传统网站架构模式:jsp、html、img、css、js全部存放在一个服务器上,把静态资源和动态资源共同放到一台服务器上。
大型互联网公司中前端与后端开发是分离,静态资源和动态资源不会部署到同一台服务器上,静态资源部署在一个服务器上(html、css、img、js …),动态资源部署在一个服务器上(后端代码)
2. 动态资源和静态资源的区别?
静态资源:用户多次访问后,html源代码不会发生改变,例如html、jpg 、css、js 等不需要后台处理的资源。
动态资源:用户多次访问后,html源代码可能会发生改变,例如我们访问的JSP页面 (本质是一个Servlet)或*.do请求等。
区别:判断标准是,刷新多次,html源代码是否发生改变 。
误区:并不是页面是动态的,就一定是动态页面,一般动态页面为了提高被搜索引擎搜到的机率,会使用伪静态;也就是说使用动态页面静态化技术将页面静态化,静态化技术有Freemarker、Beetl、Velociity、Thymeleaf 等。
3. 为什么要使用动静分离?
其实就是减轻服务器的压力、提高服务器的响应速度和效率、保证高并发。就像数据库的读写分离一样,也是保证高并发。
静态服务器我们同时也可以使用CDN做内容分发,访问不同的资源转发到不同的服务器。
静态服务器我们一般使用Nginx,Nginx实现静态服务器要比Tomcat 快得多。
4. 动静分离与前后端分离的区别?
动静分离:指的是动态资源和静态资源分离,分别部署在不同的服务器上。
前后端分离:网站架构模式中,微服务开发基于SOA面向服务开发,后台和前端都采用调用接口方式。

一、tomcat与nginx的区别

从应用方面 tomcat一般是做’动态解析’才会用得到,支持jsp(Java Server Pages包括html和java,可以写java代码也可以写html和js代码,就像.asp页面一样可以写c#和html还有js)的解析,需要配置JDK支持 nginx,则一般是做’静态’(html和js),本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等, 但nginx在静态上的功能非常强大,也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,具体得去官方网站去看; 在性能方面 如果再不做系统调优的情况下 ‘tomcat一般支持并发(并发是一秒钟的访问量)并不高100个差不多了’ ‘nginx在静态方面支持并发轻松达几万’ 如果这是个面试的人给你出的这道题目上你回答,你可以简单的告诉他,两者应用领域不一样,tomcat是做java语言的动态解析,而nginx则是一款功能强大的负载软件,配合各种插件可以实现

二、动态和静态的区别
静态请求:不需要访问数据库
动态请求:需要访问数据库,登录

静态页:打开一个网页,不需要访问数据库
动态页:打开一个网页,需要访问数据库

企业中无论是静态资源还是动态资源,都需要做共享存储

三、配置Java环境

Tomcat处理Java代码,是Java的容器,可以直接解析Java代码(.jsp结尾),不需要代理
resin处理Java代码,是Java的容器,可以直接解析Java代码,不需要代理

tar zxf jdk-8u91-linux-x64.tar.gz
mv jdk
jdk1.8.0_91/               jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
cd /etc/profile.d/
vi java.sh
export JAVA_HOME=/usr/local/java #设置Java根目录
export PATH=$PATH:$JAVA_HOME/bin #在PATH环境变量中添加JAVA根目录下的斌>子目录
~      
[root@server1 profile.d]# java -version#查看Java版本
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

安装Tomcat

tar zxf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat8
/usr/local/tomcat8/bin/startup.sh #启动
/usr/local/tomcat8/bin/shutdown.sh #关闭tomcat

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
[root@server1 ~]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
[root@server1 ~]#  ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown

netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      16829/java
systemctl stop firewalld
setenforce 0  

安装Nginx

 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++
tar zxf nginx-1.6.0.tar.gz -C /opt
cd /opt/nginx-1.6.0/
./configure \
 --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \                                  #同时提交多个io请求给内核
 --with-http_stub_status_module \        #状态统计
--with-http_gzip_static_module \      
--with-http_flv_module \                  #支持对FLV(flash)文件的拖动播放
--with-http_ssl_module                    #支持安全证书

make && make install

useradd -M -s /sbin/nologin nginx
vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server {
         server 20.0.0.10:8080 weight=1;
server 20.0.0.20:8080 weight=1;
}                 
 #添加
server {
listen       80;
server_name  localhost;
 location / {
        root   html;
        index  index.html index.htm;
 }
 location ~ \.jsp$ {                         #添加
          proxy_pass http://tomcat_server;
}
nginx -t
killall -3 nginx
nginx
netstat -anpt | grep nginx

既可以网页测试

你可能感兴趣的:(Linux)