【Java】一台服务器配置多个Tomcat

需求缘由

        最近接收了一个新的工具业务:ipublish发布系统,刚接手这个业务的时候,发现每次发布新的代码 需要到群里告知大家,我要停服务几分钟,准备更新代码啦。这尼玛 哪个公司都不敢这么牛逼的和用户说,我们网站要停服务几分钟,准备发布的。

        基于这个原因我要对ipublish进行优化,如何优雅的发布代码,而用户是无感的


功能需求

发布系统自己更新迭代需求的过程中,不能停止服务,对用户是无感知的

实现设计方案

其实这个问题基本都知道解决方案,我这里就王婆卖瓜自卖自夸吧,来一张架构图


600



架构非常简单,通过一个LB作为反向代理,然后将所有请求转发到 后端的tomat ,后端有两个tomcat ,但是提供服务的只能是某一个tomcat

操作步骤

前提条件
  • LB 使用的Nginx 监听 80端口

  • 配置两个tomcat 一个 8080 端口,一个 8081端口




Nginx


No.1 安装


#Ubuntu 
sudo apt-get install nginx

#Centos
sudo yum install nginx


No.2 配置


如下配置,我给大家截图下重点,可以看到 upstream 中有8080 8081两个配置,其中后面有一个down关键字,表示对应端口不提供服务,


upstream ipublish {
	server 127.0.0.1:8080 weight=1 down;
	server 127.0.0.1:8081 weight=1 ;
}

server {
    listen       80 default_server;
	server_name  www.54php.cn;
    location / {
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://ipublish;
    }

}


Tomcat

其实tomcat 非常容易安装,因为官网提供编译后的可以直接下载运行就行了,我们这里重点讲解如何配置两个tomcat 监听不同的端口


No.1 下载


官网下载地址,这里我们下载tomcat7,  http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.78/bin/apache-tomcat-7.0.78.tar.gz 


No.2 准备


下载完成后,将 压缩文件解压,加入解压之后 文件夹名称是apache_tomcat,此时我们复制出两个文件夹,名称分别是tomcat_8080,tomcat_8081,这两个目录就是用来配置两个端口


No.3 配置

以 tomcat_8080为例,tomcat_8081配置逻辑一样


修改 tomcat_8080/conf/server.xml 

#找到如下地方,将port 改为7080(tomcat_8081的这个地方改为 7081)
<Server port="8070" shutdown="SHUTDOWN">

#找到如下地方,将port 改为8080(tomcat_8081的这个地方改为 8081)
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


修改tomcat_8080/bin/start.sh


#找到如下地方,增加配置
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export JAVA_VERSION=jdk1.8.0_101
export JAVA_HOME=/usr/local/$JAVA_VERSION
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export CATALINA_HOME=/usr/local/tomcat_8080  #此处根据各种路径配置
export CATALINA_BASE=/usr/local/tomcat_8080  #此处根据各种路径配置


No.4 启动


例如开始提供服务的是tomcat_8080,然后我要更新东西的时候我就把代码放入tomcat_8081,然后启动8081端口的tomcat服务,由于java启动是需要时间的,所以等启动好了之后,我就把nignx 中的 upstream 8080端口加上down关键字,然后nginx reload,这样就是8081 对外提供服务,我在关闭8080服务,这样对用户就是无感更新了


效果展示

主要给大家展示一下我们风骚的ipublish系统 界面


600







原文地址: 【Java】一台服务器配置多个Tomcat
标签: java    发布系统    ipublish    tomcat    nginx    upstream   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要配置Tomcat服务器,您可以按照以下步骤进行操作: 1. 下载和安装Tomcat:首先,您需要从Apache Tomcat官方网站(https://tomcat.apache.org)下载适用于您的操作系统的Tomcat版本,并按照安装说明进行安装。 2. 配置环境变量:在安装Tomcat后,您需要配置Tomcat的环境变量。打开命令行窗口,然后设置以下环境变量: - CATALINA_HOME:指向Tomcat的安装目录。 - JAVA_HOME:指向Java JDK的安装目录。 3. 修改Tomcat配置文件:进入Tomcat的安装目录,在`conf`文件夹中找到`server.xml`文件。您可以使用任何文本编辑器打开它。 4. 更改端口号(可选):默认情况下,Tomcat使用8080端口。如果您想更改端口号,您可以找到以下行并进行相应更改: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 5. 配置虚拟主机(可选):如果您计划在同一台服务器上托管多个网站,您可以配置虚拟主机。在`server.xml`文件中找到以下示例,并根据您的需求进行适当更改: ``` <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="your-web-app-path" /> </Host> ``` 将`your-web-app-path`替换为您的Web应用程序的路径。 6. 保存并关闭`server.xml`文件。 7. 启动Tomcat服务器:打开命令行窗口,导航到Tomcat的安装目录,并运行以下命令: - Windows:`startup.bat` - Linux/macOS:`./startup.sh` 8. 验证Tomcat是否成功启动:在浏览器中输入`http://localhost:8080`(如果更改了端口号,请相应更改URL),如果看到Tomcat的默认欢迎页面,则表示Tomcat已成功配置和启动。 这些是配置Tomcat服务器的基本步骤。您还可以根据您的需求进行其他配置,如SSL证书、连接池等。希望对您有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值