快速搭建平台和环境部署Tomcat的方法
这篇文章主要讲解了“快速搭建平台和环境部署Tomcat的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“快速搭建平台和环境部署Tomcat的方法”吧!
为边坝等地区用户提供了全套网页设计制作服务,及边坝网站建设行业解决方案。主营业务为网站建设、成都网站设计、边坝网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Tomcat部署的基本概念
1. CATALINA_HOME与CATALINA_BASE分别指什么?
CATALINA_HOME指的是Tomcat的安装目录
bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/startup.sh等
conf:\\Tomcat配置文件所在目录,最主要的就是server.xml与web.xml
lib:\\主要存放Tomcat依赖包
logs:\\Tomcat日志所在目录。以为catalina、host-manager等开头日志
temp:\\存放Tomcat运行时的临时文件,通常放一些缓存文件,一般不要删除
webapps:\\应用部署所在目录,就是在这里存放我们需要部署的文件目录、WAR包
work:\\存放由JSP文件生成的Servlet
RUNNING.txt:\\运行说明,必需的一些环境信息
NOTICE:\\通知信息,软件的版权信息等
RELEASE-NOTES:\\发布说明,比如版本升级的功能说明
LICENSE:\\版权许可证,软件版权信息
CATALINA_BASE指的是Tomcat的实例所在目录,Tomcat的实例由除了bin、lib外的目录组成
两者的对比图如下一目了然,配置多实例,也只需要Copy相应的目录组成新的Tomcat实例即可。
2. conf目录下的配置文件具体用来做什么?
Tomcat的配置需要分为:JVM配置、服务器配置、Web应用配置、Tomcat管理配置四个方面(其中JVM的配置一般在catalina.sh/catalina.bat中配置,这里不做介绍),这里只做简单的介绍,不会具体介绍Tomcat配置
1)服务器配置
服务器配置主要集中于$CATALINA_HOME/conf下的catalina.policy、catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml文件。
2)Web应用配置
web.xml是Web应用的部署描述文件,它支持的元素及属性来自于Servlet规范定义。在Tomcat中,Web应用的部署描述信息包括$CATALINA_BASE/conf/web.xml中的默认配置。Tomcat的默认配置比Web应用定制配置负责很多,如果是完全基于JSP的Web应用不需要添加任何定制配置。主要包括ServletContext的初始化参数、会话配置、Filter定义与映射等
3)Tomcat管理配置
主要是针对host-manager 与manager两个功能进行配置,在Tomcat中我们可以针对虚拟主机进行配置,也可以对我们的Web应用进行管理。
3. webapps下的目录哪些可以删除?
Wwbapps目录下包括docs、ROOT、manager、host-manager、examples。webapps不一定是Tomcat部署web应用唯一的地方,可以在任何一处,但只需要做好映射即可(context.xml描述文件或者Host的appBase属性可以做到)
事实上,全部都可以删除。为什么呢?这是因为
1)ROOT:\\Tomcat本身默认的访问http://{ip}:{port},也就是访问http://127.0.0.1:8080标志性的Tomcat首页所在之处
2)manager:\\访问http://{ip}:{port}/manager/html,可以管理部署应用(当然需要配置tomcat-users.xml文件)。一般部署Web应用往往是不需要的
3)host-manager:\\访问http://{ip}:{port}/host-manager/html,可以管理配置Host虚拟主机。一般简单web应用部署也不会用到
4)examples:\\Servlet、JSP、WebSocket示例,展示在Tomcat下如何使用等,访问http://{ip}:{port}/examples/index.html即可进入。也是不需要的,可以删除
5)docs:\\Tomcat HTML文档中心,不影响应用部署,可以删除
4. Tomcat为了避免端口冲突需要更改哪些端口?
1)Server Port:该端口用于监听关闭tomcat的shutdown命令,默认为8005
3)AJP Port:该端口用于监听AJP( Apache JServ Protocol )协议上的请求,通常用于整合Apache Server等其他HTTP服务器,默认为8009。实际上可以不用管,因为AJP基本用不到,特别是Ngxin与Tomcat集成时(Nginx没有响应的支持AJP模块,只有第三方模块支持AJP协议)
4)Redirect Port:重定向端口,出现在Connector配置中,如果该Connector仅支持非SSL的普通http请求,那么该端口会把 https 的请求转发到这个Redirect Port指定的端口,默认为8443;
简单的应用部署为避免端口冲突,实际上只需要更改SHUTDOWN监听端口与Connector链接器监听端口即可
5. Tomcat部署应用的方式有哪几种?
1) Context描述文件部署
Tomcat支持通过一个独立的Context描述文件配置并启动Web应用,该文件的存储路径由Hot中xmlBase属性指定,若不指定,则默认CATALINA_BASE/conf/
2) Web部署
即以目录的形式发布部署Web应用,复制到Host指定appBase目录下即可完成部署。
3) WAR包部署
xxx.war包解压成目录形式。
接下来我们根据上文Tomcat的介绍做Linux+Nginx+MariaDB+Tomcat动静分离实战演练
1.环境描述
准备两台虚拟机,一台作为nginx服务器+MySQL服务器,IP为:192.168.109.131;另外一台作为Tomcat服务器配置多实例,IP为:192.168.109.132。当客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端;如果为动态内容,则由nginx反向代理至后端的Tomcat服务器。
2.安装Nginx
[root@centos7~]#yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf wget vim
[root@centos7~]#wget http://nginx.org/download/nginx-1.17.4.tar.gz
[root@centos7~]#useradd -s /sbin/nologin nginx
[root@centos7~]#cd nginx-1.17.4
[root@centos7~]#cd nginx-1.17.4
[root@centos7 nginx-1.17.4]##./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@centos7 nginx-1.17.4]#make && make install
[root@centos7 nginx-1.17.4]#cat /usr/local/nginx/sbin/nginx
[root@centos7 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /sbin
[root@centos7 nginx-1.17.4]# nginx
[root@centos7 nginx-1.17.4]# nginx -s reload
Nginx 安装完毕,稍后我们再配置,接下来安装mariadb
3.安装mariadb
[root@centos7~]#yum -y install mariadb mariadb-server mariadb-devel
[root@centos7~]#systemctl restart mariadb
[root@centos7~]#systemctl enable mariadb
Mysql安装完毕,我们切换到另一台最小化方式安装的虚拟机上安装Tomcat
4.安装Tomcat
[root@centos7~]#yum -y install wget bash-completion vim
[root@centos7~]#wget wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
[root@centos7~]#yum -y install java //安装JDK
[root@centos7~]#java -version //查看JDK版本
[root@centos7~]#yum install -y tomcat-webapps tomcat-admin-webapps //安装tomcat管理包
[root@centos7~]#mkdir /usr/local/tomcat /usr/local/tomcat/tomcat_1 /usr/local/tomcat/tomcat_2
[root@centos7~]#tar -xvf apache-tomcat-9.0.27.tar.gz tomcat_bin -C /usr/local/tomcat/tomcat
[root@slave tomcat]#mv apache-tomcat-9.0.27 tomcat_bin
[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_1
[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_2
[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_1以下两个参数
redirectPort="8443" />
[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_2以下两个参数
redirectPort="8443" />
[root@centos7~]#bash /usr/local/tomcat/tomcat_bin/bin/startup.sh // 启动实例0(默认配置)
Using CATALINA_BASE: /usr/local/tomcat/tomcat_bin
Using CATALINA_HOME: /usr/local/tomcat/tomcat_bin
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_bin/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_bin/bin/bootstrap.jar:/usr/local/tomcat/tomcat_bin/bin/tomcat-juli.jar
[root@centos7~]#bash /usr/local/tomcat/tomcat_1/bin/startup.sh //启动实例1
Using CATALINA_BASE: /usr/local/tomcat/tomcat_1
Using CATALINA_HOME: /usr/local/tomcat/tomcat_1
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_1/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_1/bin/bootstrap.jar:/usr/local/tomcat/tomcat_1/bin/tomcat-juli.jar
Tomcat started.
[root@centos7~]#bash /usr/local/tomcat/tomcat_2/bin/startup.sh //启动实例2
Using CATALINA_BASE: /usr/local/tomcat/tomcat_2
Using CATALINA_HOME: /usr/local/tomcat/tomcat_2
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat/tomcat_2/bin/tomcat-juli.jar
Tomcat started.
[root@centos7~]# netstat -nptl // 检查端口是否已经起来
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1482/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2045/master
tcp6 0 0 :::8009 :::* LISTEN 2956/java
tcp6 0 0 127.0.0.1:8010 :::* LISTEN 3037/java
tcp6 0 0 :::8080 :::* LISTEN 2956/java
tcp6 0 0 :::8081 :::* LISTEN 3037/java
tcp6 0 0 :::8082 :::* LISTEN 3097/java
tcp6 0 0 127.0.0.1:8020 :::* LISTEN 3097/java
tcp6 0 0 :::22 :::* LISTEN 1482/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2045/master
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2956/java
为了便于区别验证实例是否都正常工作,修改主页文件来验证
[root@centos7~]#/usr/local/tomcat/tomcat_bin/webapps/ROOT/index.jsp
This is Tomcat 0
[root@centos7~]#/usr/local/tomcat/tomcat_1/webapps/ROOT/index.jsp
This is Tomcat 1
[root@centos7~]#/usr/local/tomcat/tomcat_2/webapps/ROOT/index.jsp
This is Tomcat 2
最后,验证以下Tomcat运行是否正常。
*****************************************tomcat多实例至此安装完成***************************
5.配置nginx反向代理动态页面转发到tomcat,静态页面直接处理
[root@centos7~]#vim /usr/local/nginx/conf/nginx.conf //只保留配置部分,监听域名www.cc.com
user nginx nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web { //添加upstream模块
server 192.168.109.132:8080 ; //tomcat实例0
server 192.168.109.132:8081 ; //tomcat实例1
server 192.168.109.132:8082 ; //tomcat实例2
}
server {
listen 80;
server_name www.cc.com;
location ~* \.(do|jsp)$ { //定义访问类型转发到后端web
proxy_pass http://web;
}
location ~* tomcat\.(png|css)$ { //定义访问类型转发到后端web
proxy_pass http://web;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@centos7~]#nginx -t //测试一下nginx配置文件
[root@centos7~]#nginx -s reload //平滑启动nginx
最后本地绑定hosts文件测试一下配置结果:
访问静态主页:
访问动态页面:
总结:
实际生产环境中可能会遇到nginx多实例做负载均衡(ELB)和tomcat多实例为主的情况,根据服务器容量也有单机多实例和集群模式,所以根据不同的生产环境会有不同的配置方式,满足业务需求才是运维的第一生产力
tomcat的启停可以编辑一下Shell/Python脚本来帮助管理实例,日志的管理和参数调优也是需要继续学习的地方
感谢各位的阅读,以上就是“快速搭建平台和环境部署Tomcat的方法”的内容了,经过本文的学习后,相信大家对快速搭建平台和环境部署Tomcat的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
网站栏目:快速搭建平台和环境部署Tomcat的方法
URL分享:http://scyanting.com/article/igpdgg.html